Bashで現在のディレクトリの空き領域を取得します。

Bashで現在のディレクトリの空き領域を取得します。

私は知っていますdf -hpwd、正規表現の一致部分は少し複雑に見えます。どんなアイデアがありますか?

答え1

このオプションを使用すると、出力をより簡単に解析できるため、次の-Pことが保証されます。

  1. 各ファイルシステムに関する情報は常に1行に印刷されます。マウントされたデバイスは別々の行に配置されません。これは、インストールデバイス名が20文字を超える場合(たとえば、一部のネットワークインストールの場合)、列が正しくソートされていないことを意味します。

これにより、利用可能な空き領域をより簡単に確保できます。

$ df -Ph . | tail -1 | awk '{print $4}'

-hメガバイト、ギガバイトなどの単位を使用してください。システムに単位がない場合は-kキロバイトを使用してください。)

パスを渡すと、dfヘッダー行とパスを含むファイルシステムのデータという2行のみが返されます。 tailを使用して2行目のみを取得できます。空き領域が4列目にあることがわかっているので、を使用してその領域を取得しますawk。これはすべて次の方法で行うことができますawk

$ df -Ph . | awk 'NR==2 {print $4}'

または他のいくつかのグループフィルター

答え2

それを行う方法df -h .。これにより、現在の作業ディレクトリがあるパーティションの空き領域が提供されます。

小さな例:

 /usr/local/nagios/libexec # df -h .
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/mapper/vg00-lvol1
                       9.9G  6.1G  3.4G  65% /

答え3

バイト単位:

df --output=avail -B 1 "$PWD" | tail -n 1

人が読めるレベル:

df --output=avail -h "$PWD" | tail -n 1

または

df --output=avail -B 1 "$PWD" |tail -n 1 | numfmt --to="iec"

または

df --output=avail -B 1 "$PWD" |tail -n 1 | numfmt --grouping

答え4

あなたはできます単にこのように:

df -h $PWD | awk 'NR==2{print $4}'

コマンドの説明:

df:(disk free)は、呼び出し側のユーザーに適切な読み取り権限を持つファイルシステムの空きディスク容量を表示するために使用される標準のUnixコマンドです。

-h:人が読める形式(メガバイト、ギガバイトなど)で出力を表示します。

$PWD:現在のディレクトリからコマンドを呼び出します。

|: 一番左のコマンドの出力を一番右のコマンドに渡します。

awk:は、プログラマが各入力ファイルの文字通りprogまたは-fファイルで指定された1つ以上のファイルで指定されたパターンセットの1つと一致する行を検索できるようにするユーティリティです。

'NR==2: ヘッダー -NR==1- の代わりに空白値を含む 2 行目を取得します。

'{print $4}': 使用可能なスペースを含む 4 番目の列を取得します。

関連情報