例如想找到磁盘上所有大于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
的操作。