如何快速定位Linux大文件 find结合sort查找技巧

上周,有位客人问我如何快速找到Linux系统上那些大文件,我向他介绍了一些技巧。
首先,最好使用find命令来查找一定大小的文件。
例如,如果要查找大于 1 00 MB 的文件,可以这样做:find /path/to/search -type f -size +1 00M /path/to/search。
-type f 这里表示只搜索文件,不包括目录; -size +1 00M 表示搜索大于1 00MB的文件。

然后,如果你想按大小对这些文件进行排序,可以将它们与 sort 命令结合起来。
例如,您可以键入:find /path/to/search -type f -exec ls -l {} \; |命令-nk5 这里,ls -l 将显示每个文件的详细信息,-nk5 sort 将按第五列(文件大小)排序。

如果你想更高效地查看目录中的文件大小,可以将du命令与sort结合使用。
例如,要查看目录中最大的 2 0 个文件,可以执行以下操作:du -ah /path/to/search |类型-rh | head -n 2 0.
最后,如果只是想快速查看当前目录下的大文件,使用ls命令即可。
例如,ls -lhS 可以显示按文件大小排序的详细信息,而 ls -lRhS 可以递归查看和列出子目录中的文件。

无论如何,这取决于你。
结合使用这些命令可以轻松解决查找大文件的任务。
我还是想知道,这些技巧在实际工作中能帮助多少人呢?

如何在Linux中排序文件内容?使用sort命令对文本行进行排序

sort 命令对于 Linux 上的文件排序非常有效。

基本排序: 默认为按字母升序排列。
将 your_file.txt 的输出排序到您的终端中。
保存到新文件:sort your_file.txt >sorted_file.txt 或者使用 -o:sort your_file.txt -osorted_file.txt
按数字排序。
-n 按数字排序。
排序-n数字.txt 例如scores.txt的内容是1 00n5 n2 0n1 ,经过-n排序后变成1 n5 n2 0n1 00。
-r 降序排列。
sort-nr 数字.txt 例如,scores.txt 按降序排列将为 1 00n2 0n5 n1
按字段排序: -t'','' 指定分隔符。
排序 -t',' -k2 n users.csv 例如,users.csv 的内容为 Alice,3 0,NewYorknBob,2 5 ,London, 排序依据:鲍勃,2 5 ,伦敦爱丽丝,3 0,纽约。
-k 指定字段。
排序 -t',' -k2 n-k3 users.csv 例如,users.csv 首先按年龄升序排序,然后按城市升序排序。

处理重复行: -u 删除重复项。
排序-u log.txt 例如log.txt内容ERROR:DiskfullnINFO:Servicestarted, 去重后会出现ERROR:DiskfullnINFO:Servicestarted。
与-o结合:sort -u -o unique_sorted.txt raw_data.txt
特殊场景: -f 不区分大小写。
排序-f items.txt 例如 items.txt BananaanaapplenOrangeApple 的内容, 分类为 applenApplenBanananOrange。
-M 按月份排序。
排序-M log_dates.txt 例如log_dates.txt的内容是Dec2 5 nApr1 0nJan1 , 排序为 Jan1 nMar1 5 nApr1 0nDec2 5
大文件: 自动块合并以避免内存溢出。
它可以毫无问题地处理几十GB的文件。

Linux如何进行文件排序?

说白了,使用CRT连接Linux显示文件时间排序的命令只有两条,但很多人很容易混淆。

我们先来说说最重要的事情。
ll -t 按时间降序列出,最近修改的文件位于顶部。
去年我们运行监控系统时,我们用它来捕获最新的日志文件,非常有效。
还有一点就是ll -t可以直接使用,但是ll -t | sort -r 可以精确调整升序。
使用tar是错误的,很容易导致混乱。
还有另一个关键细节。
如果您只想查看今天更改的文件,则需要添加 find 。
-mtime 0 - 类型 f | ll -t,这样过滤就干净了。

一开始我以为tar也可以改变排序,后来发现是错误的。
它只是一个打包工具。
说实话,这很令人困惑。
很多人不注意这一点。

建议下次单独使用排序,而不是混合使用。
等等,还有一件事。
如果文件夹太大,ll -t 将冻结 CRT。
尝试使用 ls -lt。