在管理 Linux 系统时,我经常发现自己在分区变满后很难找到罪魁祸首。我通常使用du / | sort -nr但在大型文件系统上这需要很长时间才能返回任何结果。
此外,这通常可以成功地突出显示最严重的罪犯,但我经常发现自己
在更微妙的情况下诉诸于du没有sort,然后不得不浏览输出。
我更喜欢依赖于标准 Linux 命令的命令行解决方案,因为我必须管理相当多的系统并且安装新软件很麻烦(尤其是在磁盘空间不足时!)
我的目标是测量 Linux 系统上每个文件的文件大小(以 MB 或 GB 为单位),递归地记录文件名和文件大小,并将输出通过管道传输到一个制表符分隔的文本文件中。
什么是合适的命令?
可以尝试这样的命令:
ls -lhR > outputfile.txt
Run Code Online (Sandbox Code Playgroud)
但我有理由认为这是非常低效的:
http://mywiki.wooledge.org/ParsingLs
使用 for 循环会更合适吗?