1

Я знаю, как распаковать кучу файлов, за исключением нескольких, которые я не хочу:

tar --exclude=./*.jpg -pcjvf all.tar.gz ./

Здесь я tar все файлы, кроме любых расширений jpg.

Я хочу сделать наоборот. Мне нужно только tar определенные файлы. После поиска в Google мне не повезло найти примеры.

Существует ли опция --include с командой tar?

4 ответа4

3

Опция --include отсутствует, поскольку вы можете просто прикрепить все файлы, которые вы хотите включить в качестве параметров, к tar . Если вы хотите включить через подстановочный знак, используйте find:

tar -pcjvf specific.tar.gz $(find -name *.jpg)
0

Я что-то пропустил? Почему бы просто не сделать:

tar -pcjvf pictures.tar.gz ./*.jpg
0

Что-то вроде этого:

tar -pcjvf images.tar.gz ./*.jpg ./*.jpeg ./*.png
0

Я бы сделал это, отправив вывод 'find' в tar:

find /your/directory -type f -name '*.jpg' | tar --files-from=- -cvf meow.tar

Команда 'find' рекурсивно печатает все jpg, хранящиеся в каталоге /your /, а волшебная опция tar --files-from будет считывать файлы из '-', обозначая stdin, и tar их. Я считаю это особенно полезным, потому что rsync также имеет опцию --files-from, поэтому мне нужно запомнить только одну команду, указывающую файл. Более того, 'find' является более мощным, чем возможности определения файлов tar или rsync.

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