linux查找文件

一、使用 find 命令直接查找大于指定大小的文件

# 查找当前目录下大于 500MB 的普通文件:find . -type f -size +500M
[root@localhost /]# find . -type f -size +500M
./opt/jumpserver-ce-v4.10.14-x86_64.tar.gz

# 查找并显示详细信息(如大小、权限等):find /home -type f -size +500M -ls

[root@localhost /]# find /home -type f -size +500M -ls

二、 使用 du 和 sort 找出最大的文件和目录

# 查看当前目录下所有文件和目录的大小,并按大小降序显示前 10 个
du -ah . | sort -rh | head -n 10
[root@localhost /]# du -ah /var | sort -rh | head -n 10
21G     /var/lib
21G     /var
20G     /var/lib/docker/overlay2
20G     /var/lib/docker
4.8G    /var/lib/docker/overlay2/51b9c81b2a1bfb4b6f36895688e9e99b9cb2fe9e5bacfe071dbab8dca7838562/diff/opt/oracle
4.8G    /var/lib/docker/overlay2/51b9c81b2a1bfb4b6f36895688e9e99b9cb2fe9e5bacfe071dbab8dca7838562/diff/opt
4.8G    /var/lib/docker/overlay2/51b9c81b2a1bfb4b6f36895688e9e99b9cb2fe9e5bacfe071dbab8dca7838562/diff
4.8G    /var/lib/docker/overlay2/51b9c81b2a1bfb4b6f36895688e9e99b9cb2fe9e5bacfe071dbab8dca7838562
4.7G    /var/lib/docker/overlay2/51b9c81b2a1bfb4b6f36895688e9e99b9cb2fe9e5bacfe071dbab8dca7838562/diff/opt/oracle/oradata
4.1G    /var/lib/docker/overlay2/51b9c81b2a1bfb4b6f36895688e9e99b9cb2fe9e5bacfe071dbab8dca7838562/diff/opt/oracle/oradata/FREE
# 查看根目录下所有一级目录的大小(不深入子目录),并排序
sudo du -sh /* | sort -rh
[root@localhost /]# sudo du -sh /* | sort -rh
du: cannot access '/proc/4399/task/4399/fd/4': No such file or directory
du: cannot access '/proc/4399/task/4399/fdinfo/4': No such file or directory
du: cannot access '/proc/4399/fd/4': No such file or directory
du: cannot access '/proc/4399/fdinfo/4': No such file or directory
21G     /var
4.7G    /usr
2.5G    /opt
339M    /boot
285M    /vulhub
219M    /oneterm
108M    /data
76M     /root
29M     /etc
9.4M    /run
5.9M    /home
16K     /tmp
0       /sys

三、结合 find 和 du 查找最大的文件

[root@localhost /]# find / -type f -size +500M -exec du -h {} + | sort -rh | head -20
find: ‘/proc/4608/task/4608/fdinfo/6’: No such file or directory
find: ‘/proc/4608/fdinfo/5’: No such file or directory
1.3G    /opt/jumpserver-ce-v4.10.14-x86_64.tar.gz
1.1G    /var/lib/docker/overlay2/51b9c81b2a1bfb4b6f36895688e9e99b9cb2fe9e5bacfe071dbab8dca7838562/diff/opt/oracle/oradata/FREE/system01.dbf
1.1G    /var/lib/docker/overlay2/37e49821a00c0f19a375742837f7319330755fdf0ab0dee1894ed854af50978c/diff/opt/oracle/oradata/FREE/system01.dbf
691M    /var/lib/docker/overlay2/51b9c81b2a1bfb4b6f36895688e9e99b9cb2fe9e5bacfe071dbab8dca7838562/diff/opt/oracle/oradata/FREE/sysaux01.dbf
611M    /var/lib/docker/overlay2/37e49821a00c0f19a375742837f7319330755fdf0ab0dee1894ed854af50978c/diff/opt/oracle/oradata/FREE/sysaux01.dbf
511M    /var/lib/docker/overlay2/df16e9fa86a356b1b4acc46c7a4977d4f6d1862df9efa336d8eb67407a3220ac/diff/opt/oracle/product/26ai/dbhomeFree/bin/oracle
0       /proc/kcore

 四、使用 find 命令按时间过滤

ind . -ctime -1

# 查找最近 10 分钟内状态改变的文件
find . -cmin -10

# 查找最近 7 天(一周)内状态改变的文件
find . -ctime -7

# 查找最近 24 小时内内容被修改的文件
find . -mtime -1

# 查找最近 30 分钟内内容被修改的文件
find . -mmin -30

# 列出当前目录及子目录所有文件,按 ctime 排序(最新的在前)
find . -type f -exec ls -lt --time=ctime {} + | head -20

 

posted @ 2026-02-28 08:35  hopeccie  阅读(34)  评论(0)    收藏  举报