Как заставить tar создать папку, если он не существует при создании архива

Ваш лучший вариант, вероятно, использовать файл. Попробуйте так:

find . -type f -exec file {} + | grep ": data"

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

Другие способы найти эти файлы:

  • Последнее измененное время: find -mmin 5 = 5 минут назад
  • Размер, не обязательно нулевой: find -size -4k = менее 4096 байт
-1
23.08.2018, 17:10
2 ответа

Поведение tarпо умолчанию заключается в создании отсутствующих каталогов при извлечении архивов.

Если бы вы использовали cpioвместо tar, это было бы иначе, и вам нужно было бы дать cpioопцию -d, чтобы указать ему создавать отсутствующие каталоги.

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

-1
28.01.2020, 05:08

Tar может объединять только те данные, которые действительно существуют.

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

Вот пример теста:

test ! -d /1/2/3 && mkdir /1/2/3
4
28.01.2020, 05:08

Теги

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