Skip to content Skip to main navigation Skip to footer

Linux:如何更改目录下特定权限的文件为其它权限

linux find 命令对于一个系统管理员,有时候需要更改目录下所有特定权限的文件为其它的权限,比如我想把/home目录下所有的权限为644的文件更改为777权限,那么我们有什么好的办法来实现吗?
大家应该都知道如果想更改权限的话,可以是用chmod命令,如果要递归更改目录下所有子目录下的文件的权限,可以再chomd后面加上“-R”选项。下面我们通过使用find命令和chmod命令结合使用来实现我们上面的需求,更改特定权限的所有文件的权限为其它权限(有点绕,哈哈)。
首先我们使用find 命令查到根目录下所有权限为644的文件,输入下面的命令:

#find / -type f -perm 644 -print
 

然后将上面查找到的文件的权限更改为777

#find / -type f -perm 644 -print -exec chmod 777 {} \;
 

如果要更改根目录下所有的目录或子目录的权限也为777,输入下面的命令:

#find / -type d -perm 644 -print -exec chmod 777 {} \;
 

示例:

[root@devops test]# ls -al
总用量 12
drwxr-xr-x. 3 root root 4096 6月  29 00:39 .
drwxrwxrwt. 4 root root 4096 6月  29 00:01 ..
-rw-r--r--. 1 root root    0 6月  28 12:18 t1
-rw-r--r--. 1 root root    0 6月  28 12:18 t10
-rw-r--r--. 1 root root    0 6月  28 12:18 t10.bak
-rw-r--r--. 1 root root    0 6月  28 12:18 t2
-rw-r--r--. 1 root root    0 6月  28 12:18 t2.bak
-rw-r--r--. 1 root root    0 6月  28 12:18 t3
-rw-r--r--. 1 root root    0 6月  28 12:18 t3.bak
-rw-r--r--. 1 root root    0 6月  28 12:18 t4
-rw-r--r--. 1 root root    0 6月  28 12:18 t5
-rw-r--r--. 1 root root    0 6月  28 12:18 t5.bak
-rw-r--r--. 1 root root    0 6月  28 12:18 t6
-rw-r--r--. 1 root root    0 6月  28 12:18 t7
-rw-r--r--. 1 root root    0 6月  28 12:18 t7.bak
-rw-r--r--. 1 root root    0 6月  28 12:18 t8
-rw-r--r--. 1 root root    0 6月  28 12:18 t8.bak
-rw-r--r--. 1 root root    0 6月  28 12:18 t9
-rw-r--r--. 1 root root    0 6月  28 12:18 t9.bak
drwxr-xr-x. 2 root root 4096 6月  29 00:39 testdir
[root@devops test]# find . -type f -perm 644 -print -exec chmod 777 {} \;
./t7
./t2
./t10
./t1
./t9.bak
./t6
./t10.bak
./t7.bak
./t5
./t2.bak
./t8.bak
./t4
./t3.bak
./t3
./t8
./t9
./t5.bak
[root@devops test]# ls -al
总用量 12
drwxr-xr-x. 3 root root 4096 6月  29 00:39 .
drwxrwxrwt. 4 root root 4096 6月  29 00:01 ..
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t1
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t10
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t10.bak
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t2
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t2.bak
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t3
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t3.bak
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t4
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t5
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t5.bak
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t6
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t7
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t7.bak
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t8
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t8.bak
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t9
-rwxrwxrwx. 1 root root    0 6月  28 12:18 t9.bak
drwxr-xr-x. 2 root root 4096 6月  29 00:39 testdir
[root@devops test]#
 

更多参考:
1.Linux/Unix:通过linux find命令删除查找到的文件

0 Comments

There are no comments yet

Leave a comment

Your email address will not be published.