是否有一个替代命令可以执行与 相同的操作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
将是最好的。