初学者使用带有perm选项的Linux查找命令示例

查找命令用于根据条件搜索文件。使用find命令,我们可以根据文件大小,文件名(如果文件可读,可写或可执行)等来搜索文件。因此,使用find可以精确搜索我们要搜索的文件类型。

find命令的语法:

找到{我们要搜索的路径或位置}选项{我们要搜索的参数}

如:

在/ root目录中找到5M大小的文件。

[[email protected] ~]# find /root -size 5M

查找所有大小超过5 MB的文件,然后使用以下示例

[[email protected] ~]# find /root -size +5M

在/ root中查找所有可读文件

[[email protected] ~]# find  /root  -readable

Find命令可与-name,-user,-group等不同选项一起使用(请参阅“ man find”以了解所有选项及其用法)。在这里,我们将详细了解perm与find命令一起使用的选项。

注意: 如果我们不提供搜索路径或位置,则find命令将在当前工作目录及其子目录中开始搜索。

重要: 用户应该在使用“查找命令”的目录上具有读取和执行权限。

-perm选项:用于搜索参数中传递了所需权限的文件。就像我们要搜索/ root目录中具有确切权限777的所有文件一样。

[[email protected] ~]# find /root/ -perm 777
/root/find1/ab3
/root/find_examples/file3
[[email protected] ~]#

因此,根据输出:/ root / find1中的文件名为ab3,具有确切的权限777。

现在说我们的需求发生变化。具体如下:

  • 查找具有确切777许可(owner(r,w,x),group(r,w,x)和other(r,w,x))权限的文件。它的意思是查找所有者,组和其他拥有全部3种权限的所有文件,即(read(r)– 4,write(w)– 2,execute(x)– 1)。
  • 查找权限为741或大于741的文件,即查找文件至少具有7(rwx所有者的所有三个权限,必须至少具有读取权限(4),但可以具有组的写入和执行权限,并且必须具有最低执行权限(1),但可以具有其他的读写权限)。在这种情况下,我们会在许可之前使用“ –”。喜欢, 查找/ root -perm -741
  • 在741个位置中查找至少具有任一权限的文件。这意味着7(所有3个权限,在所有者,组或其他位置之间的任何位置)或4(读取权限,在所有者,组或其他位置之间的任何位置,或execute(1)权限在所有者,组或其他位置的任何位置)。如果任何一个条件满足,则将输出。在这种情况下,我们在许可之前使用“ /”。喜欢, 查找/ root -perm / 741

简而言之 :

  • -perm逐位检查权限。
  • 741:它将搜索每一位具有确切741权限的文件,不少于不多。
  • -741:它将以所有者中存在的7位,组中存在的至少4位(具有读取权限的最小值,但可以具有w或x),最小1(执行)的位进行搜索,但可以为其他项具有附加权限
  • / 741:所有者,组或其他任何位置的7或4或1个权限中的任何一个。

让我们通过示例来了解:

  • 我已经在/ root中创建了名为find _examples的目录。
  • 在/ root / find_examples下创建具有不同权限的文件名,分别为file1,file2,file3,file 4
[[email protected] ~]# cd /root/find_examples/
[[email protected] find_examples]# touch file1
[[email protected] find_examples]# chmod 741 file1
[[email protected] find_examples]# touch file2
[[email protected] find_examples]# chmod 540 file2
[[email protected] find_examples]# touch file3
[[email protected] find_examples]# chmod 777 file3
[[email protected] find_examples]# touch file4
[[email protected] find_examples]# chmod 400 file4
[email protected] find_examples]#

file1的许可为741。

file2的许可为540。

file3的许可为777。

file4的许可为400。

注意:如果需要以更易理解的格式输出find命令,则应使用-exec选项,示例如下所示

查找/ root / find_examples / -perm 741 -exec ls -lah {} ;

现在运行,查看上面提到的所有3个选项:

  • 搜索精确匹配741
[[email protected] ~]# find /root/find_examples/ -perm 741
/root/find_examples/file1
[[email protected] ~]#
  • 每一位至少搜索741或更多,即所有者应具有至少7个权限,同一方式组应具有至少4(读)权限,而其他人则具有最低执行权限。为此,我们将使用“-”
[[email protected] ~]# find /root/find_examples/ -perm -741
/root/find_examples/
/root/find_examples/file1
/root/find_examples/file3
[[email protected] ~]#

输出为file1(具有确切权限741)和file3(具有权限777)。

  • 搜索在任何地方都具有741权限的文件,即文件在所有者,组或其他任何地方具有7、4或1的权限。
[[email protected] ~]# find /root/find_examples/ -perm /741
/root/find_examples/
/root/find_examples/file1
/root/find_examples/file2
/root/find_examples/file3
/root/find_examples/file4
[[email protected] ~]#

输出为file1(741),file2(540),file3(777),file4(400)。

因此,在perm选项中,您可以传递具有确切许可权的参数,也可以在许可权之前使用–或/。根据您的要求