0

私は、アクションを実行するために選択できるメニューといくつかのオプションを備えたスクリプトに取り組んでいます。ホームディレクトリ内のすべてのディレクトリのディスク使用量の統計を、人間が読める形式で計算するように求めているため、現在、最後のオプションにこだわっています。

コマンドがディスクの使用法と人間が読める形式であることは知っていますが、ホーム ディレクトリ内のディレクトリの名前だけをリストする助けが必要です。これらの名前を変数に入れて、DU コマンドで使用できることを願っています。

この問題にどのようにアプローチできるかについて何か提案はありますか?

4

2 に答える 2

0

次の行を使用して、ホーム ディレクトリ内のディレクトリを一覧表示 できますホーム/ユーザー -d */ | デュ - 時間

于 2015-02-27T22:53:01.163 に答える
0

findオプションを微調整する必要があります。

for i in $(find "$HOME" -maxdepth 1 -type d | tail -n+2); do 
    du -hs "$i"
done

.への呼び出しを削除することで、ホームの合計としてリンクを使用できますtail

for i in $(find "$HOME" -maxdepth 1 -type d); do 
    du -hs "$i"
done

sizeandの両方dir namesを変数 (または 2 つ)に取得する最も簡単な方法は、find/du -hsコマンドの結果を一時ファイルに書き込んでから、sizeanddirnames連想配列(BASH 4+) に読み込むかsizeインデックス付き配列に読み込むことです。コマンドを使用しdir namesて 2 番目のインデックス付き配列に読み込みますread。これは、サブシェルで上記のコードを実行することで実行できます。

( for i in $(find "$HOME" -maxdepth 1 -type d | tail -n+2 ); do du -hs "$i"; done ) > tmpfile

read次に、の内容をtmpfile選択した配列に単純に入れます。ご不明な点がございましたら、お知らせください。

于 2015-02-27T23:29:15.310 に答える