我想按大小对我作为脚本参数提供的所有目录进行排序。“-S”)代表一个案例,因为它是整个代码的一部分
"-S")
shift
for f in "$@" ; do
if [ -d "$f" ]
then
echo "$f"
fi
done | sort
;;
这就是我按名称对参数/目录进行排序的方式,现在有按大小排序的解决方案吗?
感谢阅读/帮助!
也许:
"-S")
shift
for f in "$@" ; do
if [ -d "$f" ] ; then
echo "$f"
fi
done | xargs ls -Sd ;;
我同意 "mbratch" , ls -S 选项确实按大小排序,您可以使用附加的 -r 选项来反转它。那里有什么问题?
如果我不得不使用另一种方式,我不会单独使用 sort ,我宁愿做这样的事情:
$ find . -size +20 | xargs du -sh | sort -n ## put this in your for - list part
输出 :
16K ./.bash_history
16K ./libdata
24K ./.viminfo
24K ./test.sh
28K ./assign_chain/stuff/rpt
52K ./c_prac/t_malloc.exe
52K ./c_prac/wrt.exe
64K ./assign_chain/za_ch.csv
124K ./assign_chain/stuff/b_ch.csv
这有帮助吗?
也许是更明确的变体:
du -ks $(ls -d */)|sort -n|cut -f 2-