ファイルとフォルダのサイズ(ソート)を長い整数ではなくMB、GB単位でどのように確認できますか? [コピー]

ファイルとフォルダのサイズ(ソート)を長い整数ではなくMB、GB単位でどのように確認できますか? [コピー]

Macでは、Bashを使用して次のことを行う傾向があります。

du -sh *

現在のディレクトリにあるファイルとフォルダのサイズをMB単位でGB単位で表示します。しかし、サイズでソートしたい場合は、これを行うこともできます。

du -sh * | sort -g

合計が考慮されていないため、うまく機能しませんMGしたがって、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

http://www.commandlinefu.com/commands/view/12927/list-the-size-in-human-reader-form-of-all-sub-folders-from-the-current-location説明する:

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'

関連情報