回答:
これがより一般的なアプローチです。出力を取得du folder
し、du -h folder
2つの異なるファイルでは。
du folder > file1
du -h folder > file2
重要な部分は次のとおりです。適切な区切り文字を使用して、連結file1
およびfile2
行ごとに。
paste -d '#' file1 file2 > file3
(およびに#
表示されないと仮定)file1
file2
並べ替えますfile3
。これは、file1
コンテンツに基づいて並べ替えられ、file2
コンテンツごとにタイを分割することに注意してください。以下を使用して関連する結果を抽出しますcut
。
sort -n -k1,7 file3 | cut -d '#' -f 2
また、見てみましょうman sort
他のオプションについて。
後で再利用するために、これをエイリアスとして保存することもできます。これを行うには、以下を以下に追加します~/.bashrc
:
sorted-du () {
paste -d '#' <( du "$1" ) <( du -h "$1" ) | sort -n -k1,7 | cut -d '#' -f 2
}
次に、新しいターミナルセッションを開き、新しいエイリアスを実行します。
sorted-du /home
file3
ディレクトリに名前の付いたファイルが実際にあった場合、どうなるかを考えてみてください。上書きされてから削除されます。@SirCharloこの回答からエイリアス定義を削除し、より安全なものに置き換えています。
sort -h
次のようなものを試してください:
du -h folder | sort -h
代替案:-n
数値ソート用
注:-h
sortオプションは、Ubuntuの新しいバージョンにのみ存在します。
sort -h
この回答は、Ubuntuの10.04.4LTS以前のバージョンで有効です。
残念ながら、KMGを分類する正確な答えは難しく、複雑です。
duコマンド全体を、これを使用して人間が読める形式にソートするものにエイリアスできます。
alias duf='du -sk * | sort -n | perl -ne '\''($s,$f)=split(m{\t});for (qw(K M G)) {if($s<1024) {printf("%.1f",$s);print "$_\t$f"; last};$s=$s/1024}'\'
ここで見つけた
http://www.earthinfo.org/linux-disk-usage-sorted-by-size-and-human-readable/
ちょうどCDあなたがお知りになりたいフォルダにDUF
このdufエイリアスを/home/user/.profileの最後に追加して、dufコマンドを半永久的にすることができます。
結果:
user@hostname:~$ duf 0.0K Documenten 0.0K Muziek 0.0K Openbaar 0.0K Sjablonen 0.0K Video's 4.0K backup_db.sql.g 4.0K examples.desktop 12.0K xml printer ticket 52.0K hardinfo_report.html 152.0K librxtxSerial.so 2.7M jpos 4.4M nxclient_3.5.0-7_amd64.deb 6.4M nxnode_3.5.0-4_amd64.deb 6.8M Downloads 7.4M nxserver_3.5.0-5_amd64.deb 12.4M NetBeansProjects 18.1M mysqlworkbench.deb 28.3M Afbeeldingen 45.8M ergens-20110928-18.sql.gz 60.5M 2012-06-02ergens_archive.tar.gz 65.5M 2012-08-26ergens_archive.tar.gz 65.6M 2012-08-28ergens_archive.tar.gz 65.6M 2012-08-29ergens_archive.tar.gz 65.7M 2012-08-30ergens_archive.tar.gz 113.0M Bureaublad 306.2M ergens-20110928-18.sql
ここではdu -sch /var/* | sort -n
、MKKMMKKMMKの並べ替えが機能しない理由を説明します。
user@hostname:~$ du -sch /var/* |sort -n 0 /var/crash 0 /var/local 0 /var/lock 0 /var/opt 8,0M /var/backups 12K /var/games 16K /var/tmp 17M /var/log 68M /var/cache 104K /var/spool 144K /var/run 351M /var/lib 443M totaal 704K /var/mail
du folder | sort -n | cut -f 2 | while IFS= read -r -d '' path; do du -sh -- "$path"; done
-d ''
があります。これは、fileコマンドの出力で使用することからの残りです。
sort
。
これは、空白またはアポストロフィを含むファイル名を処理し、xargs -d
またはをサポートしていないシステムで動作しますsort -h
:
du -s * | sort -n | cut -f2 | tr '\n' '\0' | xargs -0 -I {} du -sh "{}"
結果:
368K diskmanagementd
392K racoon
468K coreaudiod
472K securityd
660K sshd
3.6M php-fpm
\n
とは\0
?それには少し遅すぎませんか?
xargs -0
。これは、(find -print0が生成するように)入力がNULで区切られることを想定しています。それ以外の場合、-0は使用できず、アポストロフィには特別な意味があります。
-0
、無関係です:imgur.com/87w3vfj