Ваш лучший вариант, вероятно, использовать файл
. Попробуйте так:
find . -type f -exec file {} + | grep ": data"
Теперь, это не поймает файлы, которые случайно имеют правильное магическое число в начале, но вполне вероятно, что большинство других методов все равно пропустят их.
Другие способы найти эти файлы:
find -mmin 5
= 5 минут назадfind -size -4k
= менее 4096 байтПоведение tar
по умолчанию заключается в создании отсутствующих каталогов при извлечении архивов.
Если бы вы использовали cpio
вместо tar
, это было бы иначе, и вам нужно было бы дать cpio
опцию -d
, чтобы указать ему создавать отсутствующие каталоги.
Если вы находитесь в режиме создания, нет проблем, которые могли бы соответствовать вашему вопросу, поскольку нет смысла архивировать -не существующие каталоги.
Tar может объединять только те данные, которые действительно существуют.
Я думаю, что более гладким методом было бы, если бы вы заранее проверили, существует ли каталог. Проблема с вашим методом заключается в том, что если каталог не может быть создан, вы не увидите сообщение об ошибке.
Вот пример теста:
test ! -d /1/2/3 && mkdir /1/2/3