Linux系统化中查找大记录的手段有哪些
Linux系统化中查找大材料的手段有哪些
一、ls命令
最简易的手段就是借助 ls 命令,因为 ls 命令本身输出是带材料大小资料的。
比如,我要列出 /opt 目录中的 5 个最大材料,可以:
1.ls -lSh /opt | head -5
二、find命令
find 本身就是查找命令,可以递归查找一个目录的子目录,所以用它是自然的。
比如,查找 / 目录下最大的一个材料:
1. sudo find / -type f -printf “%st%pn” | sort -n | tail -1
如果要找前 10 个大材料呢,可以这样:
2. $ find $HOME -type f -printf ‘%s %pn’ | sort -nr | head -10
也可以使用 -size 选项来查找,以下命令将显示大于100MiB(注意不是100MB,MiB和MB的区别,emmm)的所有材料:
3. find / -size 100M-ls
也可以查找一个区间大小的(比如 100MiB 和 200MiB )之间的材料:
4. find / -size 100M-size -200M-ls
最后,下面这个命令也比较常用,查找某个目录最大的5个材料:
5. find $DIRECTORY -type f -exec ls -s {} ; | sort -n | tail -n 5
补充一点,find 也可以查找最近的材料:少于或等于n天(-ctime -n)的材料或属于特定顾客(-user mrlinus)的材料。
三、du命令
du 命令可以查看磁盘空间的使用情况,自然也可以用来查看磁盘上占用空间较多的材料和材料夹。
比如,查找 / 下前 20 个最大的材料:
6.sudo du -a / | sort -n -r | head -n 20
查找当前材料夹中最大的 10 个目录:
7.sudo du -a | sort -n -r | head -n 10
如果要显示可读的KB、MB、GB资料,可以加上 -h 参数:
8.du -hs * | sort -rh | head -n 10
查找最大目录/材料(包括子材料夹):
9.du -Sh| sort -rh | head -n 10
如果只看大小在 GB 范围内的所有材料,可以同时使用 du 命令和 grep 命令:
10.du -h -a /dir | grep “[0-9]Gb”