Цикл монтирования файлов и монтируемых каталогов [дубликат]

Можно сделать что-то вроде

  ls *.txt | awk -F '[.-]' '{ if (f[$2,$1]) { print $0; }
                              else { f[$1,$2] = 1} }' | xargs rm

Это работает следующим образом: передайте имена соответствующих файлов в awk. Для каждого файла проверьте, не был ли файл с обратным именем уже занесен в массив f. Если да, выведите имя файла. Если нет, поместите его в массив f. Используйте вывод программы awk для удаления дубликатов файлов.

5
13.04.2017, 15:36
2 ответа

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

Устройство цикла - это устройство перевода, оно переводит вызовы блочных файлов в обычные вызовы файловой системы к определенному файлу. Вы можете использовать losetup для создания полноценных устройств обратной петли, поддерживаемых файлом (будет отображаться как / dev / loopX , а затем обрабатывать их как обычные блочные устройства или передать -o loop для монтирования, чтобы сообщить ему о прозрачном создании блочного устройства. Вы также можете использовать losetup для проверки устройств обратной петли и того, что они поддерживают.

Обратите внимание, что при современном монтировании он попытается обнаружить обычный файл и автоматически создаст для вас устройство обратной связи.Таким образом, вам не нужно , чтобы передавал ему параметр loop .

Кроме того, технически bind mount - это место, где вы перемонтируете каталог в новое место (поэтому он монтируется дважды). Это можно сделать с помощью флага - bind для монтирования. Я понимаю, что вы имеете в виду, но это может сбить с толку, поскольку термин bind имеет особое значение с точки зрения монтажа.

Редактировать: Ваша ментальная модель, по сути, верна, но вы можете думать о петлевых устройствах как об уровне абстракции, это позволяет монтированию взаимодействовать с любым файлом, как если бы это было блочное устройство, без необходимости понимать различия между чтение / запись в файловую систему или на необработанное блочное устройство - все это обрабатывает ядро. Все, что нужно знать команде mount, - это как попросить ядро ​​настроить устройство цикла, а затем рассматривать его как блочное устройство; это упрощает код низкого уровня и позволяет всему, что может взаимодействовать с блочным устройством, вместо этого разговаривать с файлом без изменения.

3
27.01.2020, 20:41

Расплывчато описанное, петлевое крепление перенаправляет крепление как "петлевое устройство".

«Устройство цикла» эффективно представляет физический раздел (который обычно представляет собой последовательные блоки устройства), но должен интерпретироваться через файловую систему, в которой изображение находится в потенциально фрагментированном состоянии.

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

Цикл mount -o не технически идентичен операции mount в большей степени, чем использование подкачки для файл подкачки идентичен использованию swapon для раздела подкачки.

На реальном разделе чтение и запись ограничены физическими границами раздела / цилиндра. Фрагментация запутывается файловой системой раздела.

В зацикленном изображении фрагментация скрыта за очевидно последовательным монтированием. Базовая файловая система обрабатывает фрагментацию файлов и представляет собой последовательный «раздел».

Это становится более очевидным в случае зашифрованных или сжатых образов дисков, таких как squashfs .В таких случаях доступ к упомянутым блокам изображений осуществляется через базовую файловую систему, а затем они обрабатываются с помощью применимого API сжатия (или шифрования) для представления очевидно последовательного набора блоков устройства.

Короче говоря, ожидается, что «блочное устройство» будет последовательным списком «блоков устройства». Специальное устройство , созданное с помощью монтажа в петлю , делает вид, что потенциально непоследовательные блоки устройств различных размеров являются последовательными блоками устройств заранее определенного размера.

0
27.01.2020, 20:41

Теги

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