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

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

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

  • Как уменьшить размер логического тома / fs aix?
  • Какие функции ext4 не поддерживают btrfs?
  • Сценарий Bash для вывода пути на флеш-накопитель USB
  • Как установить образ жесткого диска OpenBSD на Linux?
  • ext4: Как учесть пространство файловой системы?
  • GRUB Legacy жалуется на неизвестность файловой системы?

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

  • Почему первый дескриптор `/` смонтированного раздела и inode `/` отличается?
  • Минимизировать зарезервированное пространство на томе ext4 без больших файлов
  • Умный способ дефрагментации файловой системы FAT?
  • Сортировка файлов в каталоге по времени доступа, игнорируя подмножество из них
  • Почему cd-ing для // устанавливает PWD на //, но больше слэшей просто дает /?
  • рекурсивно синхронизировать только определенные файлы из определенных подкаталогов с удаленного сервера
  • 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 - лучшая ОС в мире.