опция команды tar для Linux

опция команды tar для Linux

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

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

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

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

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

решение1

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

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

решение2

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

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

решение3

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

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

решение4

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

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

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

Связанный контент