Macでは、Bashを使用して次のことを行う傾向があります。
du -sh *
現在のディレクトリにあるファイルとフォルダのサイズをMB単位でGB単位で表示します。しかし、サイズでソートしたい場合は、これを行うこともできます。
du -sh * | sort -g
合計が考慮されていないため、うまく機能しませんM
。G
したがって、44 MBは20 GBを超えるため、44 MBは20 GBを超えると見なすことができます。
プログラムを作成せずにUNIXコマンドおよび/またはBash機能のみを使用してこれを実行する方法はありますか?
その範囲のファイルとフォルダに興味がある場合は、GB
次のことができます。
du -sh * | egrep "^\s*\d+(.\d+)?G\s" | sort -g
それを見せる
2.6G ski video clips
7.6G trip 2012.mp4
12G trip photos
TB
しかし、ORを検討したい場合は、MB
上記の方法は機能しません。 UNIX / Mac OS Xコマンドを使用してより一般的にこれを実行する方法はありますか?
答え1
du -ks $(ls -d */) | sort -nr | cut -f2 | xargs -d '\n' du -sh 2> /dev/null
これはMacでテストされ、du
一度だけ実行されました。 1024の代わりに1K = 1000という小さなエラーがあります。
du -sk * | sort -n | perl -pe '@SI=qw(K M G T P); s:^(\d+?)((\d\d\d)*)\s:$1.$SI[((length $2)/3)]."\t":e'