如何列出我的主目录中的公共文件?(模式 777)

如何列出我的主目录中的公共文件?(模式 777)

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
  • 我的主目录中显示:

    -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

如果您想列出所有文件...

  1. 包含在任意位置您的主目录(包括主目录的子目录、子目录的子目录等),以及

  2. 每个人都可以明确地读取、写入和执行

...然后这个命令会为你做到这一点:

find ~ -perm 777

真的就这么简单。

如果您只想列出满足上述两个条件且直接位于主目录内(不在任何子目录内)的文件,请使用此命令:

find ~ -maxdepth 1 -perm 777
  • 在这种情况下,777将指示您、您的组和其他所有人都可读、可写和可执行的文件。如果某些文件可能具有奇怪的权限集,例如 477(您可以读取文件,而其他所有人都可以执行和写入文件),您可能需要使用:

    find ~ -maxdepth 1 -perm -o+rwx
    

    前面的连字符-o+rwx表示该文件可以具有其他权限,并且o+rwx表示其他的(拥有该文件的组和用户之外)可以读取、写入和执行该文件,而无需检查任何其他权限。

man find有关如何执行这些操作和类似操作的详细信息,以及man chmod777和其他数字模式的含义。

答案3

  • 打开终端。
  • 通过以下命令更改到您想要了解文件权限的目录:

    cd "Directory"
    
  • 将引号中的文本替换为您所需的目录名称。

  • 然后输入另一个命令:

    ls -l
    

    此命令 ( ls) 通常用于获取文件名。-l该命令的参数将提供有关文件的完整信息。

    因此您还可以看到文件权限。

相关内容