
と同じことを実行する代替コマンドはありますか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
最高でしょう。