現在のディレクトリがあるマウントポイントに関するいくつかの情報を取得し、df .
ここから必要なすべての情報を取得できますmount
。しかし、(他のマウントに関する)情報が多すぎます。私はそれを抑制することができますが、より良い方法があるかどうか疑問に思います。
mountinfo
私が望む情報を提供できるコマンドはありますかmountinfo .
(例:df .
提供された情報を含むmount
)?
私はDebian GNU / Linuxを使用しています。
答え1
私はあなたが次のようなことをしたいと思います:
findmnt -T .
このオプションを使用する場合
-T、-ターゲット道パスがマウントポイントファイルまたはディレクトリでない場合は、マウント
findmnt
ポイントを取得するためにパス要素を逆の順序で確認します。特定のフィールドのみを印刷してこれを実行できます-o, --output [list]
。利用可能なフィールドのリストについては、リソースを参照してください。
findmnt --help
または、以下を実行できます。
(until findmnt . ; do cd .. ; done)
問題は、すべてのルートが何かに関連しているので、ツリーに沿って歩くことです。毎回。
findmnt
これはutil-linuxパッケージのメンバーであり、長年使用されてきました。これで、どのディストリビューションを使用しても、そのツールがあれば、mount
Linuxシステムにすでにインストールされています。
man mount | grep findmnt -B1 -m1
For more robust and customizable output use
findmnt(8), especially in your scripts.
findmnt
マウントポイントパラメータなしですべてのマウント情報を印刷し、マウントポイントパラメータを持つ情報のみを印刷します。-D
はいシミュレーションdf
オプション。これを持たない出力は 's-D
と似ていますが、さらに設定可能です。自分でやって確認してみてください。mount
findmnt --help
現在のシェルの現在のディレクトリが変更されないように、サブシェルに入れました。
だから:
mkdir -p /tmp/1/2/3/4/5/6 && cd $_
(until findmnt . ; do cd .. ; done && findmnt -D .) && pwd
出力
TARGET SOURCE FSTYPE OPTIONS
/tmp tmpfs tmpfs rw
SOURCE FSTYPE SIZE USED AVAIL USE% TARGET
tmpfs tmpfs 11.8G 839.7M 11G 7% /tmp
/tmp/1/2/3/4/5/6
-D
利用可能なオプションがない場合(以前のバージョンのutil-linuxでは機能しません)それでは心配することはありません。とにかく便利なスイッチに過ぎません。各呼び出しに対して生成される列ヘッダーを参照してください。-o
出力スイッチを使用して、各呼び出しの列ヘッダーを含めたり除外したりできます。-D
たとえば、与えられたものと同じ出力を得ることができます。
findmnt /tmp -o SOURCE,FSTYPE,SIZE,USED,AVAIL,USE%,TARGET
出力
SOURCE FSTYPE SIZE USED AVAIL USE% TARGET
tmpfs tmpfs 11.8G 1.1G 10.6G 10% /tmp
答え2
コマンドはわかりませんが、関数を作成できます。に以下を追加できます.bashrc
。
mountinfo () {
mount | grep $(df -P "$1" | tail -n 1 | awk '{print $1}')
}
その後、コマンドが実行され、mount
出力がにパイプされますgrep
。grep
出力は次df -P "$1" | tail -n 1 | awk '{print $1}'
のように区別されます。
df -P "$1"
df
関数に渡された引数に対して実行されます。tail -n 1
partition
情報を含む2行目のみが出力されます。awk '{print $1}'
/dev/sda5
ディスク/パーティション番号である行の最初の部分を印刷しますgrep
。
変更を適用するには、ファイルをインポートまたはログアウトして.bashrc
から再度ログインしてください。
今実行すると、mountinfo .
希望の結果を得ることができます。
答え3
Linux / Unixのアプローチは、結合時に望ましい結果を提供する小さなユーティリティのツールボックスを持つことです。
すべての場合に適していないことが多いです。代わりに、パイプなどにグループ化されている小さくて便利なユーティリティがたくさんあります。これの利点は、利用可能なユーティリティがない場合でも簡単に直接作成できることです。
たとえば、必要な情報を取得するには、次のようにします。
mount | grep $(df --output=source . | tail -1)
上記の内容を別のディレクトリで再利用するには、スクリプトを作成します。
#!/bin/bash
mount | grep $(df --output=source $1 | tail -1)
別の名前で保存mountinfo
して実行可能にします(chmod +x mountinfo
)。その後、次のように使用できます。
mountinfo .
すべての相互運用性のためのユーティリティを含むシステムが必要な場合は、Gates氏が助けることができます;-)
答え4
非常に古くないGNU coreutils dfバージョンを使用していてもecho $(df . --output=target | tail -n 1)
大丈夫です。同様にstat -c '%m' .
気づいたがhttps://linux.die.net/man/1/stat書式設定オプションがない文書%m
。
移植可能に行うことは迷惑です。上記のいずれもBSDまたはCygwinバージョンのstatまたはdfでは動作しません。マウントポイントのパスにスペースがない場合は良いですが、df -P . | tail -1 | awk '{ print $NF}'
USBフラッシュドライブのボリューム名にスペースがあることがよくあります。これはマウントパスに表示され、この設定が中断される可能性があります。移植性のために、Perlはほぼどこにでもインストールでき、CPANにはモジュールがあります。システム::ファイルシステム::マウントポイント必要な機能を提供します。