Linux中find命令,-perm 后面的权限 前面加上的 / 和 - 在用法上有什么区别,请举例详细说明
时间: 2024-02-27 18:51:46 浏览: 24
在 Linux 的 find 命令中,-perm 后面的权限前面加上的 / 和 - 在用法上有所区别,具体如下:
1. / 表示精确匹配权限
如果在 -perm 后面的权限前面加上 /,则表示只匹配权限完全符合的文件,而不匹配权限包含此值的文件。例如,要查找权限为 644 的文件,可以使用以下命令:
```
find . -type f -perm /644
```
这样只会匹配权限完全为 644 的文件,而不会匹配权限为 664 或 604 的文件。
2. - 表示包含匹配权限
如果在 -perm 后面的权限前面加上 -,则表示匹配权限包含此值的文件。例如,要查找包含写权限的文件,可以使用以下命令:
```
find . -type f -perm -200
```
这样会匹配所有包含写权限的文件,如权限为 644、666、777 等。
需要注意的是,使用 -perm 匹配权限时,可以同时使用多个权限值,例如:
```
find . -type f -perm 644 -o -perm 600
```
这样会匹配权限为 644 或 600 的文件。
另外,需要注意的是,/ 和 - 都是用于匹配权限的,它们不能用于修改权限。如果需要修改权限,可以使用 chmod 命令,例如:
```
chmod 644 file.txt
```
相关问题
find / -user root -perm -4000 -print 2>/dev/null 是什么意思
这个命令是在Linux系统中查找所有属于root用户并设置了SUID权限的文件,并将结果输出到屏幕上。其中,“/”表示从根目录开始查找,“-user root”表示查找属于root用户的文件,“-perm -4000”表示查找设置了SUID权限的文件,“-print”表示将结果输出到屏幕上,“2>/dev/null”表示将错误信息输出到空设备,即不显示错误信息。
Linux find 命令如何根据权限查找文件。请详细说明用法,并举例演示
Linux 的 find 命令可以根据文件的权限来查找文件。具体用法如下:
```
find [路径] -perm [权限模式] [操作]
```
其中,路径表示要查找的目录或文件,权限模式表示要匹配的文件权限,操作表示要对匹配的文件进行的操作,例如打印、删除等。
权限模式可以使用以下格式:
- 数字形式:使用三位八进制数表示,分别表示文件所有者、文件所属组、其他用户的权限,例如 644 表示所有者读写,所属组和其他用户只读。
- 符号形式:使用 u 表示所有者,g 表示所属组,o 表示其他用户,a 表示所有用户,r 表示读权限,w 表示写权限,x 表示执行权限,+ 表示添加权限,- 表示删除权限,= 表示设置权限为指定值。
例如,要查找当前目录及其子目录下所有权限为 644 的文件,可以使用以下命令:
```
find . -type f -perm 644 -print
```
其中,`.` 表示当前目录,`-type f` 表示要查找的是普通文件而非目录或链接,`-perm 644` 表示文件权限为 644,`-print` 表示打印匹配的文件名。
又例如,要将当前目录及其子目录下所有权限为 777 的文件修改为 644,可以使用以下命令:
```
find . -type f -perm 777 -exec chmod 644 {} \;
```
其中,`-exec` 表示对匹配的文件执行指定命令,`chmod 644 {}` 表示将文件权限设置为 644,`\;` 表示命令结束。`{}` 表示匹配的文件名,需要用 `\` 转义。