スクリプトでパラメーターとして指定したすべてのディレクトリをサイズで並べ替えたいと思います。「-S」) は、コード全体の一部であるため、ケースを表します。
"-S")
shift
for f in "$@" ; do
if [ -d "$f" ]
then
echo "$f"
fi
done | sort
;;
これは、パラメータ/ディレクトリを名前でソートした方法ですが、サイズでソートするソリューションはありますか?
読んでくれて/助けてくれてありがとう!
「mbratch」に同意します。ls -S オプションはサイズでソートし、追加の -r オプションでそれを逆にすることができます。そこの問題は何ですか?
ソートを単独で使用しない別の方法を使用する必要がある場合は、次のようにします。
$ 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
これは役に立ちますか?
多分:
"-S")
shift
for f in "$@" ; do
if [ -d "$f" ] ; then
echo "$f"
fi
done | xargs ls -Sd ;;
たぶん、より明示的なバリアント:
du -ks $(ls -d */)|sort -n|cut -f 2-