df .
を実行して、現在のディレクトリがあるマウントに関する情報の一部を取得できます。また、mount
から必要なすべての情報を取得できます。しかし、私は多くの情報(他のマウントに関する情報)を取得します。私はそれをgrepできますが、もっと良い方法があるかどうか疑問に思っています。
mountinfo .
が必要な情報を提供するようなコマンドmountinfo
はありますか(df .
と同様ですが、mount
が提供する情報を使用します)。
私はDebian Gnu + Linuxを使用しています。
Linux/Unixの方法は、小さなユーティリティのツールボックスを用意することです。これらのツールボックスを組み合わせると、思い通りの結果が得られます。
彼らはすべての機会のためのユーティリティを持っている傾向はありません。代わりに、パイプなどと組み合わされた小さな便利なユーティリティがたくさんあります。これの利点は、利用できるユーティリティがない場合でも、簡単に独自のユーティリティを作成できることです。
たとえば、あなたがしている情報を取得するには、次を使用できます。
mount | grep $(df --output=source . | tail -1)
上記を別のディレクトリで再利用する場合は、スクリプトを作成します。
#!/bin/bash
mount | grep $(df --output=source $1 | tail -1)
mountinfo
として保存し、実行可能にします(chmod +x mountinfo
)。その後、次のように使用できます。
mountinfo .
相互運用できないすべてのユーティリティを備えたシステムが必要な場合は、特定のMrs Gatesがお手伝いします;-)
コマンドはわかりませんが、関数を作成できます。以下を.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
は、2行目、partition
情報を含む行のみを出力します。awk '{print $1}'
は、その行の最初の部分、たとえば/dev/sda5
などのディスク/パーティション番号を出力します。これがgrep
がmountコマンドで探して出力するものです。.bashrc
ファイルを入手して変更を適用するか、ログアウトして再度ログインします。
これで、mountinfo .
を実行すると、必要な出力が得られます。
マウントポイントに空白が含まれていると多少面倒になる可能性がありますが、マウントポイントに改行が含まれている場合を除いて、これは機能するはずです。
#!/bin/sh
mountpoint="$(df -P "$1" | awk '{
if (NR==1)
i=index($0,"Mounted on");
else
print substr($0,i);
}')"
mount|grep " on ${mountpoint} type "
df -P
ファイルシステムの1行を出力します。このオプションがないと、マウントポイントが長い場合、df
は2行を出力することがあります。マウントポイント名は、ヘッダー行の「Mounted on」ラベルと同じ列で始まります。
マウントポイントを取得したら、mount
の出力でそれをgrepします。
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にはモジュール Sys :: Filesystem :: MountPoint があり、必要な機能を提供します。