rwx
我想获取主文件夹中所有具有(读写执行) 或 777 权限的文件的列表每个人。
另外,了解文件权限的命令是什么?
答案1
从终端:
默认情况下,终端会在你的主目录中打开。从其他任何地方,键入
cd ~
即可返回主目录。ls -l
将在开始时显示文件权限,例如-rwxr-xr-x 1 izx izx 11217428 Oct 2 2011 wkhtmltoimage-amd64
第一种方法:观看并学习方式
然后您可以使用 grep 进行过滤以获得所需的结果:
ls -l | grep -P ".{7}rwx.*"
- 这里的正则表达式告诉 grep 只选择字符 8-10 的行
rwx
- 这里的正则表达式告诉 grep 只选择字符 8-10 的行
我的主目录中显示:
-rwxrwxrwx 1 izx izx 0 6月15日 23:42 sd.png -rwxrwxrwx 1 izx izx 0 6月15日 23:42 slashdot.png drwxrwxrwx 3 izx izx 4096 6月15日 21:31 src
第二种方法:正确的递归方法
在你的主目录中,输入
find . -perm -a+rwx
- 你说寻找查看当前(主)目录和所有子目录,查找所有文件
rwx
;结果将以完整的相对路径显示,例如
./.mozilla/firefox/lr5z24b3.default/lock ./src ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.la ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so.0 ./src/accountsservice-0.6.15/debian/libaccountsservice-dev/usr/lib/libaccountsservice.so ./src/accountsservice-0.6.15/debian/libaccountsservice0/usr/lib/libaccountsservice.so.0 ./src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so ./src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so.0 ./.pulse/676238f89edd1f57138b3da400000004-运行时 复制代码 复制代码 ./XnView/lib/libQtGui.so.4 ./XnView/lib/libQtWebKit.so.4 ./XnView/lib/libQtXml.so.4 ./XnView/lib/libQtDBus.so.4 ./XnView/lib/libQtNetwork.so.4 ./XnView/lib/libQtCore.so.4 ./XnView/lib/libQtSvg.so.4
- 你说寻找查看当前(主)目录和所有子目录,查找所有文件
主目录中的粗体条目也出现在第一个方法中。
有关使用方法find
为了实现你想要的,请参考Eliah Kagan 的回答略高于或低于这个。
答案2
通常,您会使用ls
命令来查找文件的权限。但是对于特定任务,您想要自动列出具有特定权限的文件,使用ls
,即使您使用另一个实用程序(如)过滤输出grep
,也会很快变得非常复杂,无法正确执行。因此,对于此类任务,您最好使用find
。
如果您想列出所有文件...
包含在任意位置您的主目录(包括主目录的子目录、子目录的子目录等),以及
每个人都可以明确地读取、写入和执行
...然后这个命令会为你做到这一点:
find ~ -perm 777
真的就这么简单。
如果您只想列出满足上述两个条件且直接位于主目录内(不在任何子目录内)的文件,请使用此命令:
find ~ -maxdepth 1 -perm 777
在这种情况下,
777
将指示您、您的组和其他所有人都可读、可写和可执行的文件。如果某些文件可能具有奇怪的权限集,例如 477(您可以读取文件,而其他所有人都可以执行和写入文件),您可能需要使用:find ~ -maxdepth 1 -perm -o+rwx
前面的连字符
-o+rwx
表示该文件可以具有其他权限,并且o+rwx
表示其他的(拥有该文件的组和用户之外)可以读取、写入和执行该文件,而无需检查任何其他权限。
答案3
- 打开终端。
通过以下命令更改到您想要了解文件权限的目录:
cd "Directory"
将引号中的文本替换为您所需的目录名称。
然后输入另一个命令:
ls -l
此命令 (
ls
) 通常用于获取文件名。-l
该命令的参数将提供有关文件的完整信息。因此您还可以看到文件权限。