Bash脚本列出具有大于X的倍数文件的子文件夹/文件夹的文件夹

时间:2016-10-27 19:21:10

标签: linux bash shell unix

我正在寻找一个bash脚本,而不是列出所有

的文件夹

a)子文件夹

b)超过1个大于X的文件

可悲的是,我的bash-fu对于完成这样的事情并不是那么好,我甚至都不知道该怎么做才能做到这一点。

关于 a) 我不知道从哪里开始(摆弄ls -R?)

关于 b) 我已经可以列出所有大于X的文件:

du -sm * | awk '$1 > 500'

但从那时起,我就被困住了。

非常感谢您提前帮助。

2 个答案:

答案 0 :(得分:1)

对于a find awksort

$ 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

答案 1 :(得分:1)

a)子文件夹

find . -type d  | awk -F/ 'NF>2{print $2}' | sort -u

b)文件大小超过500mb

find . -type f -printf "%p %k\n" | awk '$NF>500000'