find
是一个强大的 Linux 命令,用于在目录树中搜索文件和目录
- 基本语法:
find [路径] [表达式]
- 示例:
- 在当前目录及其子目录中查找名为 “file.txt” 的文件:
find . -name "file.txt"
- 在
/home
目录及其子目录中查找所有以.txt
结尾的文件:
find /home -name "*.txt"
- 在当前目录及其子目录中查找所有目录:
find . -type d
- 在当前目录及其子目录中查找所有文件(不包括目录):
find . -type f
- 在当前目录及其子目录中查找所有在 24 小时内修改过的文件:
find . -mtime 0
- 在当前目录及其子目录中查找所有属于用户 “username” 的文件:
find . -user username
- 在当前目录及其子目录中查找所有空文件:
find . -type f -empty
- 在当前目录及其子目录中查找所有大于 1MB 的文件:
find . -type f -size +1M
- 使用逻辑操作符:
-and
(默认):两个条件都满足时才匹配。-or
:只要满足其中一个条件就匹配。-not
:取反,条件不满足时匹配。
示例:
- 在当前目录及其子目录中查找所有以
.txt
结尾且文件大小大于 2MB 的文件:
find . -type f -name "*.txt" -size +2M
- 在当前目录及其子目录中查找所有以
.txt
结尾或以.jpg
结尾的文件:
find . -type f \( -name "*.txt" -o -name "*.jpg" \)
- 执行命令:
你可以在 find
命令中使用 -exec
选项来对找到的文件执行特定命令。
示例:
- 在当前目录及其子目录中查找所有以
.txt
结尾的文件,并使用rm
命令删除它们:
find . -type f -name "*.txt" -exec rm {} \;
注意:在使用 -exec
选项时要小心,确保你了解将要执行的命令,以免误删文件。
这只是 find
命令的一些基本用法,实际上 find
命令非常强大,可以通过组合不同的选项和表达式来实现更复杂的搜索需求。要了解更多关于 find
命令的信息,请查阅其手册页(通过运行 man find
命令)。