Я могу сделать, df .
чтобы получить некоторую информацию о монтировании, в котором находится текущий каталог, и я могу получить всю информацию, от которой я хочуmount
, но получить много информации (информация о других монтированиях). Я могу понять это, но мне интересно, есть ли лучший способ.
Есть ли какая-нибудь команда mountinfo
, которая mountinfo .
дает информацию, которую я хочу (например df .
, но с информацией, которая mount
дает.)
Я использую Debian Gnu + Linux.
filesystems
mount
disk-usage
Ctrl-Alt-Делор
источник
источник
stat
команда может быть использована также. Тем не менее, я не уверен,%m
поддерживается ли опция, которая дает точку монтирования, в вашей версии системы. Я проверил свою систему, и она, похоже, не вернула точку монтирования.stat "--printf=%m\n" .
получает точку монтирования файловой системы, в которой находится текущий каталог. Таким образом, мы можем упростить некоторые ответы. Благодарю.Ответы:
Я думаю, что вы хотите что-то вроде этого:
При использовании опции
если путь не является файлом или каталогом точки монтирования,findmnt
проверяет элементы пути в обратном порядке, чтобы получить точку монтирования. Вы можете распечатать только определенные поля через-o, --output [list]
.Смотрите
findmnt --help
список доступных полей.В качестве альтернативы вы можете запустить:
Проблема, с которой вы сталкиваетесь, заключается в том, что все пути относятся к тому или иному, поэтому вам просто нужно пройтись по дереву. Каждый раз.
findmnt
является членом пакета util-linux и работает уже несколько лет. К настоящему времени, независимо от вашего дистрибутива, он должен быть уже установлен на вашем компьютере с Linux, если у вас также естьmount
инструмент.findmnt
выведет информацию всех монтирований без аргумента точки монтирования и только для аргумента с одним.-D
Является эмулироватьdf
вариант. Без-D
него вывод похож наmount
s - но гораздо более настраиваемый. Попробуйтеfindmnt --help
и убедитесь сами.Я вставляю его в подоболочку, чтобы текущий каталог текущей оболочки не менялся.
Так:
ВЫХОД
Если у вас нет
-D
опции, доступной вам (не в более старых версиях util-linux), вам не нужно бояться - в любом случае это всего лишь удобный переключатель. Обратите внимание на заголовки столбцов, которые он создает для каждого вызова - вы можете включить или исключить заголовки для каждого вызова с помощью-o
переключателя utput. Я могу получить такой же вывод, как-D
может обеспечить, как:ВЫХОД
источник
-D
, у меня нет такой возможности. (Я на Debian7, util-linux 2.20.1-5.3)df
Что касается цикла и - я готов поспорить, что он делает цикл, вам просто не нужно указывать это сделать.findmnt $(stat "--printf=%m\n" .)
findmnt
имеет-T
опцию, которая может обойтиcd ..
цикл. Может быть полезным для кого-то еще.Способ Linux / Unix состоит в том, чтобы иметь набор инструментов из небольших утилит, которые в сочетании дают вам результаты, к которым вы стремитесь.
Они, как правило, не имеют полезности на все случаи жизни. Вместо этого у вас есть много небольших полезных утилит, которые объединяются вместе с каналами и т. Д. Преимущество этого состоит в том, что вы можете написать свою собственную утилиту довольно легко, если ни одна из них не доступна.
Например, чтобы получить информацию, которую вы ищете, вы можете использовать:
Если вы хотите использовать вышеизложенное в разных каталогах, создайте скрипт:
Сохраните его как
mountinfo
и сделайте его исполняемым (chmod +x mountinfo
). Затем вы можете использовать его как:Если вам нужна система, которая имеет утилиту для всего, что не взаимодействует друг с другом, то вам может помочь некий мистер Гейтс ;-)
источник
--output
существует только в самых последних версиях GNU coreutils (≥8.22).mount
без опций кажется немного запоздалым: с опциями вы создаете точки монтирования, без их перечисления, я надеялся на лучший инструмент для создания списков. Как мы видим, @mikeserv показал намfindmnt
.Может быть немного грязно, если точки монтирования содержат пробелы, но это должно работать, за исключением случаев, когда точки монтирования содержат символы новой строки:
df -P
выводит одну строку для файловой системы; без этой опцииdf
может выводить две строки, если точка монтирования длинная. Имя точки монтирования начинается в том же столбце, что и метка «Монтировано на» в строке заголовка.После того, как мы получим точку монтирования, мы будем использовать ее для вывода
mount
.источник
Я не знаю команду, но вы могли бы создать функцию. Вы можете добавить ниже к вашему
.bashrc
:Это выполняет
mount
команду и передает выводgrep
.grep
будет искать выводdf -P "$1" | tail -n 1 | awk '{print $1}'
и разбивать его:df -P "$1"
будет работатьdf
с аргументом, переданным функции,tail -n 1
будет выводить только вторую строку, которая содержитpartition
информацию.awk '{print $1}'
напечатает первую часть этой строки, например, номер диска / раздела/dev/sda5
. Вот чтоgrep
будет искать в команде mount и выводить ее.Исходный
.bashrc
файл, чтобы применить изменения, или выйдите и войдите снова.Теперь, если вы запустите
mountinfo .
, вы получите желаемый результат.источник
mount
без вариантов кажется немного После размышлений: с опциями вы создаете точки монтирования, без их перечисления, я надеялся на лучший инструмент для создания списков. Как мы видим, @mikeserv показал намfindmnt
.Если вы используете не совсем древнюю версию GNU coreutils df, то
echo $(df . --output=target | tail -n 1)
работает. Аналогичноstat -c '%m' .
, хотя я отмечаю, что на https://linux.die.net/man/1/stat отсутствует документация о параметре%m
формата.Делать это переносимо утомительно: ни один из вышеперечисленных не будет работать с версиями stat или df для BSD или Cygwin. Если бы не было возможности пробелов в путях точек монтирования,
df -P . | tail -1 | awk '{ print $NF}'
было бы хорошо, но часто на флэш-накопителях USB есть пробелы в имени тома, которые, вероятно, появятся в пути монтирования и сломают его. Для мобильности Perl устанавливается практически везде, а CPAN имеет модуль Sys :: Filesystem :: MountPoint, который обеспечивает желаемую функциональность.источник
echo $()
добавляет к команде?