
是否有一個替代命令可以執行與 相同的操作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
但如果你真的想要一個命令來列印它,那麼@roaima的findmnt
將是最好的。