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

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

Альтернативный установочный CD предоставляет установщик, который является основанным на тексте, а не графическим. Это необходимо для установки на компьютерах меньше чем с 384 мегабайтами RAM. Это также имеет много опций пользовательской установки, которые не доступны в стандартной Настольной версии, и это может часто использоваться для установки, если стандартный CD не работает.

Кроме того (предложенный в этом Задают вопрос Ubuntu: Как переместить/usr в новый раздел), Вы могли установить с CD по умолчанию и затем использовать живой CD для перемещения тех разделов в другой жесткий диск; после этого отредактируйте /etc/fstab отразить эту модификацию.

20
24.11.2018, 01:34
5 ответов

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

findmnt -T .

При использовании параметра

-T, --target path
, если путь не является файлом точки монтирования или каталог, findmnt проверяет элементы пути в обратном порядке, чтобы получить точку монтирования. Вы можете распечатать только определенные поля через -o, --output [list].
Список доступных полей см. В findmnt --help.

В качестве альтернативы вы можете запустить:

(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 распечатает всю информацию о монтировании без аргумента точки монтирования, и только ту информацию для своего аргумента с одним. -D - это параметр эмулировать 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 (не в старых версиях util-linux) , тогда вам никогда не понадобится страх - в любом случае это не более чем удобный переключатель. Обратите внимание на заголовки столбцов, которые он создает для каждого вызова - вы можете включить или исключить их для каждого вызова с помощью переключателя utput -o . Я могу получить тот же результат, что и -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
18
27.01.2020, 19:44

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

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

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

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

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

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

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

mountinfo .

Если вам нужна система, которая имеет утилиту для всего, что не взаимодействует друг с другом, то некий мистер Гейтс может помочь вам ;-)

.
1
27.01.2020, 19:44

Я не знаю команды, но можно создать функцию. Вы можете добавить к своему .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" запустит df на аргумент, переданный функции,
  • tail -n 1 выведет только вторую строку, содержащую информацию о разделе .
  • awk '{print $1}' выведет первую часть этой строки, которая является номером диска/раздела, например /dev/sda5. Это то, что grep будет искать в команде монтирования и выводить.

Источник вашего .bashrc файла, чтобы применить изменения, или выйдите из системы и войдите обратно.

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

1
27.01.2020, 19:44

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

#!/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 может выводить две строки, если точка монтирования длинная. Имя точки монтирования начинается в том же столбце, что и метка «Установлено на» в строке заголовка.

Получив точку монтирования, мы ищем ее в выводе mount .

1
27.01.2020, 19:44

Если вы используете не совсем древнюю версию 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}'было бы хорошо, но часто флешки имеют пробелы в имени тома, которые наверняка появятся в пути монтирования и сломают это. Для переносимости Perl можно установить практически везде, а CPAN имеет модуль Sys ::Filesystem ::MountPoint , который обеспечивает желаемую функциональность.

0
27.01.2020, 19:44

Теги

Похожие вопросы