Linux提供了许多重要的工具来简化管理员的工作。find命令是Linux世界中最重要的命令之一。Find命令根据文件所有者、文件大小、文件更改日期、文件名等提供搜索。现在我们可以从简单的示例开始,然后转到更复杂的示例。
查找命令语法
Find命令语法如下所示。首先,给出我们要搜索的路径,然后提供不同的选项。
find PATH OPTIONS
根据文件名查找文件
查找文件的简单而快速的方法是使用文件名。我们用一个名为tmux的文件搜索当前目录。我们将使用-name find命令和双点的选项 意味着我们要搜索当前的工作目录。
$ find . -name tmux
在主目录下查找文件
要搜索和查找所有正常用户的主目录下的文件,可以发出以下查找命令。
$ find /home -name ismail
查找忽略大小写或不区分大小写的文件
默认情况下,find命令搜索提供区分大小写的文本。要进行搜索,请忽略区分大小写的prefix-iname参数,如下所示。在本例中,我们将搜索bash 在整个文件系统中不区分大小写。
$ find / -iname bash

只搜索目录
只搜索目录可以通过如下指定文件类型来完成。我们将使用-type 选项和d 将文件类型指定为目录。
$ find / -type d -name bash
查找Python文件
搜索带有扩展名的python文件可以如下所示。延长线 py
我们想要什么都可以改变。
$ find . -name '*.py'
查找具有777权限的文件
777权限可能是一个安全问题,如果文件拥有的根或高特权用户。我们可以根据其权限搜索文件。我们将使用 -perm
选项和权限值。
$ find / -type f -perm 0777 -print
查找启用SUID的文件
我们可以搜索文件和目录,根据他们的 suid
价值观。我们将使用 -perm
和 /u=s
指定用户suid标志。
$ find / -perm /u=s

查找只读文件
搜索只读文件可以在下面完成。我们将使用 /u=r
这意味着用户是只读的。
$ find / -perm /u=r
查找具有777权限的文件并更改为664
使用以下命令可以搜索具有777权限的文件,并使用664使其更安全。我们可以在找到的文件中执行命令 -exec
选项。 {}
用于指定中的文件名 -exec
部分。
$ find / -type f -perm 0777 -print -exec chmod 644 {} ;

-
-exec
提供对找到的文件执行命令的能力。 - {} 用于指定要运行的文件 奇莫德 在这些文件上
查找并删除文件
有一个简单的快捷方式来查找文件并删除它们。在本例中,我们将使用 .py
使用扩展 rm
命令。
$ find . -type f -name "*.py" -exec rm -f {} ;
查找空文件
找不到空文件。我们只需要指定 -empty
选择find命令,如下所示。
$ find / -type f -empty

查找所有隐藏文件
通常由操作系统或应用程序用于配置问题的隐藏文件。我们可以用一个点 作为隐藏文件语法,因为我们知道Linux中的隐藏文件从 .
点。
$ find /tmp -type f -name ".*"
查找给定用户的文件
根据所有权搜索文件。我们将使用 -user
选项指定用户名。在这个例子中,我们要找到 root
用户文件 .txt
分机。
$ find / -user root -name *.txt

查找组的文件
根据组所有权搜索文件。如果组不存在,请给出类似find的消息:“developer”不是现有组的名称。
$ find /home -group ismail

查找最近5天修改的文件
根据文件的修改日期搜索文件。我们将使用 -mtime
用于查找在过去5天内修改过的文件的平均修改时间的选项。
$ find /home/ismail/ -mtime 5
查找最近5天访问的文件
搜索过去5天访问的文件。我们将使用 -atime
作为访问时间的选项。
$ find /home/ismail -atime 5
查找在过去50到100天内修改的文件
搜索最近50天和100天内修改的文件。
$ find /home -mtime +50 -mtime -100

查找最近2小时更改的文件
搜索最近2小时更改的文件
$ find /home/ -cmin -120

查找大小为10MB的文件
我们可以根据文件的大小找到它们。我们将使用 -size
此选项。在这个例子中,我们会发现大小是10MB。我们可以用 -
o +
指定 小于或大于给定的大小
$ find /home -size 10M
根据大小查找文件并删除
搜索大于100MB的文件并将其删除。
$ find /tmp -size +100M -exec rm -rf {} ;