find命令的30个实用示例

2025-04发布7次浏览

正文

find 是 Linux 和类 Unix 系统中一个功能强大的命令行工具,用于在文件系统中搜索文件和目录。它可以根据多种条件(如名称、类型、大小、修改时间等)来查找文件,并结合执行操作(如删除、复制或打印)。本文将介绍 find 命令的 30 个实用示例,帮助用户更好地掌握该命令。

示例 1: 按名称查找文件

find /path/to/search -name "filename.txt"

此命令将在指定路径下查找名为 filename.txt 的文件。

示例 2: 忽略大小写查找文件

find /path/to/search -iname "FILENAME.TXT"

使用 -iname 选项可以忽略文件名的大小写。

示例 3: 查找所有 .txt 文件

find /path/to/search -name "*.txt"

示例 4: 查找空文件

find /path/to/search -empty

示例 5: 按类型查找文件

find /path/to/search -type f

此处 -type f 表示查找普通文件,如果需要查找目录,则使用 -type d

示例 6: 查找大于特定大小的文件

find /path/to/search -size +100M

此命令将查找大于 100MB 的文件。

示例 7: 查找小于特定大小的文件

find /path/to/search -size -10M

此命令将查找小于 10MB 的文件。

示例 8: 查找修改时间在一天内的文件

find /path/to/search -mtime -1

示例 9: 查找访问时间在一天内的文件

find /path/to/search -atime -1

示例 10: 查找更改时间在一天内的文件

find /path/to/search -ctime -1

示例 11: 查找权限为 777 的文件

find /path/to/search -perm 777

示例 12: 查找并删除文件

find /path/to/search -name "temp*" -exec rm {} \;

示例 13: 查找并压缩文件

find /path/to/search -name "*.log" -exec gzip {} \;

示例 14: 查找并复制文件到另一目录

find /source/path -name "*.jpg" -exec cp {} /destination/path/ \;

示例 15: 查找并移动文件到另一目录

find /source/path -name "*.mp3" -exec mv {} /destination/path/ \;

示例 16: 查找符号链接

find /path/to/search -type l

示例 17: 查找空目录

find /path/to/search -type d -empty

示例 18: 查找最近 10 分钟内修改过的文件

find /path/to/search -mmin -10

示例 19: 查找最近 1 小时内访问过的文件

find /path/to/search -amin -60

示例 20: 查找最近 1 天内更改过的文件

find /path/to/search -cmin -1440

示例 21: 查找不属于某个用户的文件

find /path/to/search ! -user username

示例 22: 查找不属于某个组的文件

find /path/to/search ! -group groupname

示例 23: 查找并显示详细信息

find /path/to/search -exec ls -lh {} \;

示例 24: 查找并显示文件大小

find /path/to/search -type f -exec du -h {} \;

示例 25: 查找并替换文本内容

find /path/to/search -type f -exec sed -i 's/old_text/new_text/g' {} \;

示例 26: 查找并统计文件数量

find /path/to/search -type f | wc -l

示例 27: 查找并统计目录数量

find /path/to/search -type d | wc -l

示例 28: 查找并列出前 10 个最大的文件

find /path/to/search -type f -exec du -h {} \; | sort -rh | head -n 10

示例 29: 查找并列出前 10 个最旧的文件

find /path/to/search -type f -printf '%T+ %p\n' | sort | head -n 10

示例 30: 查找并列出前 10 个最新的文件

find /path/to/search -type f -printf '%T+ %p\n' | sort -r | head -n 10

通过这些示例,您可以根据实际需求灵活地使用 find 命令。记住,find 是一个非常强大且灵活的工具,熟练掌握它可以大大提高您的工作效率。