現在のパーティション/ドライブのマウント ポイントへのパスを取得するためのコマンドはありますか?

現在のパーティション/ドライブのマウント ポイントへのパスを取得するためのコマンドはありますか?

と同じことを実行する代替コマンドはありますかfindmnt -T . -o TARGET |tail -n 1?

例: 現在の作業ディレクトリが の場合/media/username/HDD/subdir1/subdir2、そのコマンドは を出力します/media/username/HDD/

Windowsでは、現在のドライブ/パーティションの最上位ディレクトリへのパスは\/コマンド)、Windowsはドライブ文字ではなく「すべてはファイルです」

Unix はより統一され、モジュール化されて動作しますが、パーティションのマウント ポイントを見つけるにはどうすればよいのでしょうか。 より短い解決策がない場合はfindmnt -T . -o TARGET |tail -n 1、問題ありません。別の方法があるかどうかを知りたいだけです。

答え1

見てみると、man findmntファイルシステムのマウント ポイントを見つけるときに必要なことを実行すると思われるいくつかの提案があります。

findmnt --first-only --noheadings --output TARGET --target "$PWD"
/home

あるいは、読みにくくなります:

findmnt -fno TARGET -T "$PWD"
/home

答え2

変数で後で使用するためではなく、自分用として検索したいだけの場合は、これより短い方法は見つかりませんdf .

$ df . 
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda6      343650580 232263752  93860660  72% /home

もちろん、これには追加の詳細が含まれているため、デバイス名を変数に直接保存するために使用することはできません。ただし、解析するのは非常に簡単です。

$ df . | grep -Po '^/\S+'
/dev/sda6
$ df . | awk '/^\//{print $1}'
/dev/sda6

しかし、本当に1つのコマンドで印刷したい場合は、@roaima のfindmnt最高でしょう。

関連情報