![用于获取当前分区/驱动器安装点路径的命令?](https://linux22.com/image/155106/%E7%94%A8%E4%BA%8E%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E5%88%86%E5%8C%BA%2F%E9%A9%B1%E5%8A%A8%E5%99%A8%E5%AE%89%E8%A3%85%E7%82%B9%E8%B7%AF%E5%BE%84%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
是否有一个替代命令可以执行与 相同的操作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
将是最好的。