0

私のUbuntu 14.10サーバーでは、次の場所にあるユーザーフォルダーのサイズを確認する必要があります

/home/docks/*userid*

私はbashの初心者ですが、ここまで来ました

du -csh /home/docks/userid | grep total戻ってくる、と言う

16K total

今は合計はあまり気にしないので、それをさらに減らして 16K を取得したいと考えています。シェルスクリプトでこれを行う比較的簡単な方法があると思います。どなたか教えていただけるとありがたいです。

4

2 に答える 2

1

単純な awk でこの作業が行われるため、grep を使用する必要はありません。

du -csh /home/docks/userid | awk '/total/{print $1}'

また

du -csh /home/docks/userid | awk '$2 ~ /^total$/{print $1}'

また

du -csh /home/docks/userid | grep -oP '\S+(?=\s+total\b)'

\S+1 つ以上の非スペース文字に一致します。一致の後に 1 つ以上の空白文字(?=\s+total\b)が続く文字列が続く必要があることを主張する肯定的な先読み。total

于 2015-04-09T10:24:08.560 に答える
1

言語バージョンが英語とは異なり、出力の「合計」単語が別の言語で表示される場合、ユーザー フォルダーのサイズのカウントに問題が発生する可能性があります。

このような状況を防ぐためのちょっとした「ハック」 (要約は常に出力の最後の行として出力されることを考慮してdu):

du -csh /home/docks/userid | tail -n 1 | cut -f1

または、次を使用できます。

du -sh /home/docks/userid | cut -f1
于 2015-04-09T10:53:33.350 に答える