如何在 Linux 上递归使用 chmod?
您可能遇到过这样一种情况:您使用 Linux 作为主要操作系统,然后您尝试创建或编辑文件,而 Linux 终端响应类似“权限拒绝”错误。通常情况下,此类错误与您当前用户拥有的权限不足有关,可以通过设置正确的文件权限或更改所有者来解决。
在 Linux 中,文件通过文件权限、所有权和属性进行控制,从而确保只有经过授权的用户和进程才能访问文件和目录。
在了解如何让chmod命令在所有目录和子目录上递归运行之前,让我们先了解chmod命令的实际含义。
chmod是一个 linux 命令,主要用于更改文件系统对象的访问权限。它根据一种模式更改每个文件的权限,其中模式简单地描述了要修改的权限。
语法
chmod [Options]... Mode [,Mode]... file...chmod [Options]... Numeric_Mode file...
chmod [Options]... --reference=RFile file...
在上面的语法中, [OPTIONS] 占位符可以替换为可以与其一起使用的不同标志,一些最常用的标志是
-f, --silent, --quiet suppress most error messages-v, --verbose output a diagnostic for every file processed
-c, --changes like verbose but report only when a change is made
-c, --reference=RFile use RFile's mode instead of MODE values
-R, --recursive change files and directories recursively
--help display help and exit
--version output version information and exit
现在我们知道了chmod 的实际作用,让我们考虑几个例子,我们将为同一个文件提供不同的权限。
示例 1
chmod 777 sample.txt
上面的命令使用模式777,这意味着任何人都可以读取、写入和执行文件。
示例 2
chmod 020 sample.txt
上面的命令使用模式020,这只是意味着只有一组可以读取、写入和执行文件。
现在,让我们学习如何递归地运行chmod
语法
chmod -R MODE directory
考虑我们有一个目录,我想在其中对所有文件递归运行 chmod。该目录在命令之前看起来像这样
immukul@192 linux-questions-code % ls -tlrtotal 960
-rw-r--r-- 1 immukul staff 446966 Sep 23 1998 wget-1.5.3.tar.gz
drwxr-xr-x 3 immukul staff 96 Jul 7 17:42 d1
-rwxrwxrwx 1 root staff 106 Jul 8 13:10 sample2.sh
drwxr-xr-x 4 immukul staff 128 Jul 8 19:05 d2
-rwxrwxrwx 1 root staff 946 Jul 12 18:45 sample.sh
-rwxrwxrwx 1 root staff 718 Jul 12 18:48 sample1.sh
考虑下面显示的命令
chmod -R 777 .输出结果
total 960-rwxrwxrwx 1 immukul staff 446966 Sep 23 1998 wget-1.5.3.tar.gz
drwxrwxrwx 3 immukul staff 96 Jul 7 17:42 d1
-rwxrwxrwx 1 root staff 106 Jul 8 13:10 sample2.sh
drwxrwxrwx 4 immukul staff 128 Jul 8 19:05 d2
-rwxrwxrwx 1 root staff 946 Jul 12 18:45 sample.sh
-rwxrwxrwx 1 root staff 718 Jul 12 18:48 sample1.sh
以上是 如何在 Linux 上递归使用 chmod? 的全部内容, 来源链接: utcz.com/z/343851.html