例如想找到磁盘上所有大于100M的文件:
find / -size +100M -ls
如果想指定一个大小范围:
find / -size +10M -size -12M -ls
find 是 Linux 中一个非常强大且常用的命令,用于在指定目录下查找文件和目录。它能够根据各种条件(如名称、大小、修改时间、权限等)查找文件,并可以执行指定的操作。
find [查找路径] [查找条件] [操作]
-name: 按名称查找文件或目录(支持通配符)。-type: 查找指定类型的文件,如 f 表示普通文件,d 表示目录。-size: 按文件大小查找,+ 表示大于,- 表示小于。例如,-size +100M 表示查找大于 100MB 的文件。-mtime: 按修改时间查找,-n 表示 n 天以内,+n 表示 n 天以前。-atime: 按访问时间查找,类似于 -mtime。-user: 查找属于某个用户的文件。-perm: 按权限查找文件或目录。-exec: 查找到文件后执行命令。-delete: 删除查找到的文件或目录。查找 /home/user 目录下所有名为 file.txt 的文件:
find /home/user -name "file.txt"
查找 /var/log/ 目录下以 .log 结尾的所有文件:
find /var/log/ -name "*.log"
查找 /etc 目录下所有目录:
find /etc -type d
查找 /etc 目录下所有普通文件:
find /etc -type f
查找大于 100MB 的文件:
find / -size +100M
查找小于 1KB 的文件:
find / -size -1k
查找过去 7 天内修改的文件:
find / -mtime -7
查找 30 天前修改的文件:
find / -mtime +30
查找 2 天前访问过的文件:
find / -atime +2
查找用户 root 所拥有的文件:
find / -user root
查找具有 755 权限的文件:
find / -perm 755
查找 /var/log 目录下 .log 文件并删除它们:
find /var/log -name "*.log" -exec rm {} \;
在 {} 中插入找到的文件路径,\; 表示命令结束。
查找并删除 /tmp 目录下所有 7 天前修改的 .tmp 文件:
find /tmp -name "*.tmp" -mtime +7 -delete
查找空文件:
find / -type f -empty
查找空目录:
find / -type d -empty
find 命令是一个非常灵活且功能强大的文件搜索工具。它不仅可以根据文件名、大小、时间等条件查找文件,还可以结合其他命令对查找到的文件进行处理,如删除、移动、修改权限等操作。在执行批量操作时要小心,特别是带有 -exec 或 -delete 的操作。