您的位置:

Linux find命令的用法详解

一、查找文件

1、查找指定文件名的文件

find / -name "file.txt"

上述代码表示在根目录下查找文件名为file.txt的文件,如果需要在其他目录下查找,则将/替换成目标目录。

2、通配符匹配查找文件

find /dirs -name "file.*"

上述代码表示在dirs目录下查找以file开头,后面跟着任意字符的文件。

3、查找文件大小在指定范围内的文件

find /dirs -size +10M -size -100M

上述代码表示在dirs目录下查找文件大小在10MB和100MB之间的文件。

4、按照时间查找文件

find / -ctime 7

上述代码表示在根目录下查找7天内更改的文件。

5、按照文件类型查找文件

find / -type f

上述代码表示在根目录下查找普通文件。

二、删除文件

1、删除指定文件

find / -name "file.txt" -exec rm -f {} \;

上述代码表示在根目录下查找名为file.txt的文件并删除。

2、删除匹配的文件

find / -name "*.txt" -delete

上述代码表示在根目录下查找文件名以.txt结尾的文件并逐一删除。

三、更改文件权限

1、更改所有者权限

find / -name "file.txt" -exec chown user:group {} \;

上述代码表示在根目录下查找名为file.txt的文件并将所有权转移给user:group。

2、更改文件权限

find / -name "file.txt" -exec chmod 755 {} \;

上述代码表示在根目录下查找名为file.txt的文件并更改其权限为755。

四、查找目录

1、查找指定目录名的目录

find / -type d -name "dir"

上述代码表示在根目录下查找名为dir的目录。

2、按照深度查找目录

find / -type d -name "dir" -depth 2

上述代码表示在根目录下查找名为dir的目录,深度为2。

3、查找空目录

find / -type d -empty

上述代码表示在根目录下查找空目录。

五、对找到的文件执行命令

1、对找到的文件执行命令

find / -name "*.txt" -exec grep "keyword" {} \;

上述代码表示在根目录下查找文件名以.txt结尾的文件并在其中搜索关键词keyword。

2、对找到的文件进行批量重命名

find /path -name "*.txt" -execdir mv {} newname.txt \;

上述代码表示在path目录下查找文件名以.txt结尾的文件并对它们进行批量重命名为newname.txt。

六、使用筛选器查找文件

1、使用OR逻辑来组合筛选器

find / -name "*.txt" \( -user user1 -o -user user2 \)

上述代码表示在根目录下查找属于用户user1或user2的所有.txt文件。

2、使用AND逻辑来组合筛选器

find / -name "*.txt" -user user1 -group group1

上述代码表示在根目录下查找属于用户user1且属于组group1的所有.txt文件。

3、使用NOT逻辑来排除某些文件

find / -name "*.txt" ! -user user1

上述代码表示在根目录下查找所有.txt文件,但将所有属于user1的文件排除在外。

七、使用find命令的注意事项

1、使用find命令时要注意权限问题,某些目录和文件可能需要管理员权限才能访问。

2、使用exec参数时要特别小心,防止误删重要文件。

3、使用find命令的搜索范围过大时,可能会耗费大量时间和系统资源。

4、使用通配符时要小心,不要匹配到不必要的文件。

5、建议使用-man参数了解更多命令使用帮助。