LINUX查找大文件用什么命令_LINUX查找大文件的常用命令与技巧

我记得上次清理硬盘时,报告说我的硬盘空间不足,但我无法弄清楚哪些文件占用了空间。
于是我打开终端,依次使用find、du、ncdu,发现确实有好几GB的临时文件。

find 命令非常灵活。
例如,要检查/var/log中所有大于1 GB的文件,可以直接搜索/var/log -type f -size +1 G,秒级得到结果。
记得有一次,我检查/home/downloads中的临时缓存,发现有一个5 00MB的压缩包,还没有被解码。
一旦我删除它,我就有了可用空间。

结合du和sort更直观,尤其是du -h /home/temps |排序-hr | head -1 0 直接列出 1 0 个最大的陷阱,让您不再需要猜测。
上次我发现 /tmp/backup 附加了几个 GB。
原来是备份工具失控了。

ls -lhS 在某些目录(例如 ls -lhS /home/videos)上效果最佳,您可以快速查看哪些 1 08 0P 电影受影响最大。
记得有一次找《流浪地球》的备份,发现压缩包里居然有2 .3 GB,还没有被删除。

ncdu 只是一个磁盘侦探。
如果你点击目录,就可以清楚地看到。
按上下键滚动,按 Enter 进入子目录,按 d 删除文件。
这是非常有效的。
上次我用它删除了 /var/cache 中的一些旧软件包,节省了我半天的时间。

但是,当我使用搜索来搜索该文件时,我发现我需要的文件被意外删除了。
比如,上次找日志文件的时候,不小心删除了一个重要的系统日志,差点就死掉了。

等一下,还有一件事。
使用du和ncdu时,可能会遇到单位转换的问题。
例如,如果您使用 du -k,单位将以 KB 为单位,并且排序将不准确。
请注意。
我突然想到,使用这些命令有什么技巧或陷阱吗?

如何在Linux命令行中进行文件查找?

搜索命令是最常用的,支持多种条件的组合搜索。

1 .按名称搜索: 找到。
-name “.log” 检查当前目录及子目录中的所有.log 文件。
find /home -name “config.txt” 检查/home 中的config.txt。
要忽略大小写,请使用 -iname: 找到。
-iname “.jpg” 查找所有 .jpg 或 .JPG 文件。

2 按类型搜索: 找到。
-type d 搜索当前目录的所有子目录。
find / -type f 搜索根目录下的所有普通文件。

3 按尺寸搜索: find /var -size +1 00M 查找 /var 大于 1 00 MB 的文件。
寻找 。
-size 1 k 在当前目录中查找正好 1 KB 的文件。

4 按时间查询: 找到。
-mtime -3 检查最近 3 天内更改的文件。
find /backup -mtime +3 0 检查 3 0 天前更改的文件。

5 组合条件: 找到。
-size +5 0M -name “.iso” 搜索大于 5 0 MB、以 .iso 结尾的文件。
结果被传递给其他命令: 找到。
-名称“.tmp”-print0 | xargs -0 rm 删除所有 .tmp 文件。

6 实用选项: 找到。
-max 深度 1 -name “.txt” 只搜索当前目录。
find /home -path "/home/trash" -prune -o -name ".pdf" 搜索 /home 但排除 /trash 目录。

核心选项:-name/-iname(名称)、-type(类型)、-size(大小)、-mtime(时间)、-exec/pipeline(处理结果)。

find /var/log -type f -size +1 G -mtime +7 -exec gzip {} 压缩/var/log中超过1 GB且7 天内未修改的正常文件。

自己掂量一下。