Команда для получения пути к точке монтирования текущего раздела/диска?

Команда для получения пути к точке монтирования текущего раздела/диска?

Есть ли альтернативная команда, которая делает то же самое findmnt -T . -o TARGET |tail -n 1?

Пример: если мой текущий рабочий каталог — /media/username/HDD/subdir1/subdir2, эта команда выведет /media/username/HDD/.

В Windows путь к наивысшему каталогу текущего диска/раздела \(также /работает вcmd), поскольку 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'sfindmntбудет лучшим.

Связанный контент