如何使用linux find命令查找文件

时间:2020-02-23 14:39:06  来源:igfitidea点击:

介绍

如果我们没有使用合适的工具,请在系统中搜索系统中的特定文件可能是这样的麻烦,以便使用正确的工具来缓解工作。
也许有一个配置文件你不确定其中找到它,你留下来搜索它。
Find命令将找到它。

此命令只需在目录层次结构中搜索文件。
它是一个强大的命令,可以根据各种条件搜索文件,例如权限,修改时间,所有权,大小。
它还可以找到文件并修改它们,例如更改其权限,甚至删除它们。

简化的语法是这样的

$find [options] [path or directory…] [your-expression]

使用find命令的示例

1.搜索具有给定扩展的文件

在/home/tech /目录上搜索使用.pdf扩展的所有文件

$find /home/tech/-name "*.pdf"

在当前目录上搜索使用.pdf扩展的所有文件

$find . -name "*.pdf"

2.按类型搜索 - 使用-type选项进行搜索

我们可以使用-type选项指定多个参数,如下所示:f:要搜索常规文件:要搜索目录:要搜索符号链接:要搜索Block DeviceP:要搜索一个命名管道(FIFO)S:搜索套接字

搜索文件httpd.conf的多个目录

$find /home /etc /var -name httpd.conf -type f

使用名称Django查找root(/)中的所有目录。

$find/-type d -name django

3.查找具有特定权限的文件

此命令将找到具有模式644的文件并将其打印出来。

$find /home -type f -perm 0644 -print

4.基于大小查找文件

要查找大小大于10 mebibyte的文件,并按大小对它们进行排序:

find . -size +10M -type f -print0 | xargs -0 ls -Ssh | sort -z

操纵文件

使用给定权限和更改权限的文件和目录查找文件和目录

## Find files with 755 mode and change to 777
find /home -type f -perm 0755 -print -exec chmod 777 {} \;
## For Directories
find /home -type d -perm 0755 -print -exec chmod 777 {} \;

根据搜索条件查找和删除文件。

find /etc -type f -name "*.pdf" -exec rm -f {} \;
find ./path/-name '*.txt' -exec rm '{}' \;

根据修改的时间查找文件

find /etc/selinux -name "*.conf" -mtime 5

上面查找具有以指定目录中的字符conf的名称结尾的名称,并且在过去的5天内已修改。

查找并删除超过7天的/数据目录中的文件压缩文件。

find /data/*.gz -mtime +7 -exec rm -rf {} \;

查找和删除文件和目录

find /var -name "*.backup" -delete
find/-type f -name *.txt -exec rm {} \;
find/-type d -name flask -exec rm -rf {} \;  ## directory

在当前工作父目录中查找并删除空目录。

find . -type d -empty -exec rmdir {} \;

通过所有权查找文件

查找技术用户拥有的所有文件

find /home -user tech

在/var目录中查找用户技术所拥有的PDF文件

find /var -user tech -iname "*.pdf"

查找帐户组拥有的所有文件

find /home -group accounts

根据其尺寸查找文件

查找命令可以在指定所需的大小时搜索和查找文件。
查找/var目录中的所有70MB文件,请执行

find /var -size 70M

由于我们可以将文件与其大小匹配,因此我们也可以删除如下

find /var -size +70M -exec rm -rf {} \;