bam*_*uni 6 filesystem command-line
我有兴趣在当前目录中找到 n 个最大的子目录(例如 3),然后列出它们中的所有文件。我对查找最大的文件不感兴趣。我知道有很多解决方案可以找到最大的文件,但这不是我想要的。
我找到了我的 3 个最大的子目录:
$ du -hs */ | sort -rh | head -3
Run Code Online (Sandbox Code Playgroud)
结果:
212K 04/
52K 02/
20K 03/
Run Code Online (Sandbox Code Playgroud)
但不知何故,我无法列出这些目录中的文件(使用ls管道不起作用)。任何建议如何做到这一点?
您可以在 while 循环中使用管道命令的结果:
du -hs */ | sort -rh | head -3 | while read -r size dir
do
ls -l "$dir"
done
Run Code Online (Sandbox Code Playgroud)
作为一个班轮:
du -hs */ | sort -rh | head -3 | while read -r size dir ; do ls -l "$dir"; done
Run Code Online (Sandbox Code Playgroud)
感谢steeldriver建议使用readin a whileloop over a forloop using awk, 以更健壮的方式处理带有空格和特殊字符的文件名。
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |