3

Я хотел бы tar все файлы в каталоге и его подкаталогах, которые НЕ заканчиваются на .jpg, .bmp, .gif или png.

Итак, предоставлены следующие папки и файлы:

foo/file.txt
foo/file.gif
foo/bar/file
foo/bar/image.jpg

Я хочу, чтобы tar только файлы file.txt и file. file.gif и image.jpg следует игнорировать. Я также хотел бы сохранить структуру папок.

Моей первой мыслью было передать результаты команды find вместе с grep -v ".jpg | .gif | .bmp.png" в текстовый файл, а затем использовать аргумент tar include для передачи ему этого списка файлов.

Однако результаты команды grepped find также содержат каталоги (в приведенном выше примере это будут "foo" и «foo /bar»), и когда каталог подается в tar, он включает все файлы в этом каталоге, поэтому Я бы закончил с файлом tar, содержащим все файлы - не то, что я хочу.

Есть ли способ предотвратить вывод директорий find? Есть ли гораздо более простой способ приблизиться к этому?

1 ответ1

5

Используйте параметр --exclude=pattern :

tar --exclude='*.jpg' --exclude='*.png' --exclude='*.bmp' --exclude='*.gif' -cvf tar-filename.tar folder

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .