информация о подключении для текущего каталога

Я могу сделать df . чтобы получить некоторую информацию о монтировании, в которой находится текущий каталог, и я могу получить всю информацию, которую я хочу от mount , но получаю много информации. Я могу это сделать, но мне интересно, есть ли лучший способ.

Есть ли какая-либо команда mountinfo такая как mountinfo . дает информацию, которую я хочу (например, df . , но с информацией, которую дает mount ).


Я использую Debian Gnu + Linux.

  • Разница в пространстве, зарезервированная для inodes в разделах ext4 и XFS
  • Проблема после удаления системного раздела на другом HD
  • Как создать сжатую модульную файловую систему только для чтения
  • Не удается установить второй жесткий диск 1 ТБ в Linux, отлично работает в Windows 8.1
  • Рекурсивно в нижнем регистре, замените место и удалите недопустимые символы в linux FS
  • Чтение FreeBSD UFS отформатированного внешнего диска в Mac OS X
  • Какая рекомендуемая файловая система используется при достижении размеров 50 ТБ?
  • как «несколько узлов файлов» могут быть связаны с одним индексом?
  • 4 Solutions collect form web for “информация о подключении для текущего каталога”

    Я думаю, вам нужно что-то вроде этого:

     (until findmnt . ; do cd .. ; done) 

    Проблема, с которой вы сталкиваетесь, заключается в том, что все пути относятся к чему-то другому, поэтому вам просто нужно пройти дерево. Каждый раз.

    findmnt является членом пакета util-linux и существует уже несколько лет. К настоящему времени, независимо от вашего дистрибутива, он уже должен быть установлен на вашей Linux-машине, если у вас также есть инструмент mount .

     man mount | grep findmnt -B1 -m1 For more robust and customizable output use findmnt(8), especially in your scripts. 

    findmnt будет распечатывать всю информацию о findmnt без аргумента точки монтирования и только для аргумента с одним. Параметр -D является параметром emulate df . Без -D его выход похож на mount , но гораздо более настраиваемый. Попробуйте findmnt --help и убедитесь сами.

    Я придерживаюсь его в подоболочке, поэтому текущий каталог текущей оболочки не изменяется.

    Так:

     mkdir -p /tmp/1/2/3/4/5/6 && cd $_ (until findmnt . ; do cd .. ; done && findmnt -D .) && pwd 

    ВЫВОД

     TARGET SOURCE FSTYPE OPTIONS /tmp tmpfs tmpfs rw SOURCE FSTYPE SIZE USED AVAIL USE% TARGET tmpfs tmpfs 11.8G 839.7M 11G 7% /tmp /tmp/1/2/3/4/5/6 

    Если у вас нет доступной опции -D (я никогда не пойму Debian), тогда вам не нужно бояться – в любом случае это не более чем удобный переключатель. Обратите внимание на заголовки столбцов, которые он выдает для каждого вызова, – вы можете включать или исключать те для каждого вызова с помощью -o utput. Я могу получить тот же результат, что и -D например:

      findmnt /tmp -o SOURCE,FSTYPE,SIZE,USED,AVAIL,USE%,TARGET 

    ВЫВОД

     SOURCE FSTYPE SIZE USED AVAIL USE% TARGET tmpfs tmpfs 11.8G 1.1G 10.6G 10% /tmp 

    Путь Linux / Unix – это набор инструментов для небольших утилит, которые при объединении дают вам результаты, которые вам нужны.

    Они, как правило, не имеют полезности для каждого случая. Вместо этого у вас есть много небольших полезных утилит, которые объединены вместе с трубами и т. Д. Преимущество этого в том, что вы можете легко написать свою собственную утилиту, если ее нет.

    Например, чтобы получить информацию, которую вы используете, вы можете использовать:

     mount | grep $(df --output=source . | tail -1) 

    Если вы хотите повторно использовать вышеперечисленное с разными каталогами, создайте скрипт:

     #!/bin/bash mount | grep $(df --output=source $1 | tail -1) 

    Сохраните его как mountinfo и сделайте его исполняемым ( chmod +x mountinfo ). Затем вы можете использовать его как:

     mountinfo . 

    Если вы хотите, чтобы система, которая имеет утилиту для всех, которые не взаимодействуют друг с другом, тогда некий мистер Гейтс может вам помочь 😉

    Это может быть несколько грязным, если точки монтирования содержат пробелы, но это должно работать, за исключением случаев, когда точки монтирования содержат символы новой строки:

     #!/bin/sh mountpoint="$(df -P "$1" | awk '{ if (NR==1) i=index($0,"Mounted on"); else print substr($0,i); }')" mount|grep " on ${mountpoint} type " 

    df -P выводит одну строку для файловой системы; без этой опции df может выводить две строки, если точка монтирования длинна. Имя точки монтирования начинается в том же столбце, что и метка «Установлено на» в строке заголовка.

    После того, как мы получим точку монтирования, мы получаем grep для нее на выходе mount .

    Я не знаю команды, но вы можете создать функцию. Вы можете добавить ниже .bashrc :

     mountinfo () { mount | grep $(df -P "$1" | tail -n 1 | awk '{print $1}') } 

    Это выполняет команду mount и передает результат в grep . grep будет искать выход df -P "$1" | tail -n 1 | awk '{print $1}' df -P "$1" | tail -n 1 | awk '{print $1}' 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 файл .bashrc чтобы применить изменения, или выйти из системы и войти в систему.

    Теперь, если вы запустите mountinfo . , вы получите нужный результат.

    Linux и Unix - лучшая ОС в мире.