我正在寻找一个bash脚本,可以列出所有文件夹,有
a)子文件夹
或
b)大于1个文件
遗憾的是,我的bash-fu不够好,无法完成这样的事情,我甚至不知道要为这样的事情拼凑什么。
关于a)我不知道从哪里开始(摆弄ls -R
?)
关于b)我已经可以列出所有大于X大小的文件:
du -sm * | awk '$1 > 500'
但从那时起,我就被困住了。
非常感谢你们的提前帮助。
对于a) find
与awk
和sort
$ find . -type d | awk -F/ -v OFS=/ '{NF--} NF' | sort -u
查找所有目录,删除最后一层,剩下的仅是具有多重性的父目录,然后过滤。假定文件名中没有换行符。
对于b)类似地
$ find . -size +1M | awk -F/ -v OFS=/ '{NF--} NF' | sort -u
这是为大于1Mb,如果你想500b,更改为+500c
a)子文件夹
find . -type d | awk -F/ 'NF>2{print $2}' | sort -u
b)文件大小大于500mb
find . -type f -printf "%p %kn" | awk '$NF>500000'