mkisofs не включает файл tar.gz в пользовательскую iso

Вам не нужен первый cat , он известен как Бесполезное использование кот (UUOC) .

Также очень полезен grep -o , который выводит только совпадающие шаблоны, по одному в каждой строке.

Затем подсчитайте строки с помощью wc -l .

grep -v ignore YOUR_FILE | grep -o format300 | wc -l

Это напечатает 3 для вашего небольшого образца.

0
07.05.2019, 02:17
1 ответ

На самом деле это связано с различной семантикой удаления файлов.

Напр. В системе Windows вы обычно не можете удалить используемый файл. Но в системах типа Unix -файловые системы обычно следуют стандартной семантике файловой системы POSIX. Это означает, что когда вы удаляете файл, который используется:

  • команда удаления должна завершиться успешно
  • имя файла будет немедленно удалено из каталога и может быть заменено новым файлом с тем же именем сразу после этого, если это необходимо
  • фактическое содержимое файла останется на диске до тех пор, пока тот, кто использует файл, не перестанет его использовать; в этот момент файловая система автоматически завершит операцию удаления.
  • ИСКЛЮЧЕНИЕ :если существует несколько жестких ссылок на файл (= один и тот же файл на самом деле имеет более одного имени файла ), тогда только одна жесткая ссылка (= это конкретное имя файла)для файла будет удалено. Фактический файл будет удален только после того, как все жесткие ссылки будут удалены и файл больше не используется.

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

Например, если вам не хватает места на диске из-за того, что какая-то программа записывает все больше и больше данных в огромный файл,удаление этого файла не вернет вам места на диске до тех пор, пока эта программа не закроет файл (или не будет остановлена ​​). Вместо этого правильный способ снова освободить место на диске как можно скорее в этой ситуации, не убивая программу, — это обрезать файл до нулевой длины, не удаляя его.

Фон :в файловых системах в стиле POSIX -первичный, гарантированный -уникальный идентификатор для конкретного файла — это не имя файла, а номер инода файла файл. Вы можете думать об этом как о своего рода идентификационном номере социального обеспечения для файла. Каталог можно рассматривать как особый тип файла, который связывает имена файлов с номерами инодов для удобства людей, которые не могут работать с числами, как компьютер.

С точки зрения компьютера любая жесткая ссылка — это просто старая обычная запись в каталоге.:Каждый файл обычно имеет хотя бы одну жесткую ссылку.

С точки зрения человека:

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

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

В сочетании со стандартной семантикой файловой системы POSIX это означает, что вы не можете выгрузить текущую версию модуля без предварительного отключения адаптера WiFi.Но вы можете просто заменить файл модуля на диске новой версией, и при следующей перезагрузке новая версия будет использоваться автоматически. (Убедившись, что ваши файлы initramfs перегенерированы перед перезагрузкой, вы гарантируете, что старая версия модуля не останется в файле initramfs.)

1
28.01.2020, 02:40

Теги

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