opção de comando linux tar

opção de comando linux tar

Eu sei como tar vários arquivos, menos vários que não quero:

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

Aqui eu tar todos os arquivos, exceto quaisquer extensões jpg.

Eu quero fazer o oposto. Eu preciso tar apenas alguns arquivos. Depois de pesquisar no Google, não tive muita sorte em encontrar exemplos.

Existe uma opção --include com o comando tar?

Responder1

Não há --includeopção, pois você pode simplesmente anexar todos os arquivos que deseja incluir como parâmetros no arquivo tar. Se você quiser incluir via curinga, use find:

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

Responder2

Estou esquecendo de algo? Por que não apenas fazer:

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

Responder3

Algo assim:

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

Responder4

Eu faria isso canalizando a saída 'find' para tar:

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

O comando 'find' imprime todos os jpgs armazenados em /seu/diretóriorecursivamente, e a opção mágica --files-from do tar lerá os arquivos de '-', significando stdin, e os tará. Acho isso particularmente útil porque o rsync também tem uma opção --files-from, então preciso lembrar apenas um comando de especificação de arquivo. Além disso, 'find' é mais poderoso do que as habilidades de especificação de arquivo tar ou rsync.

informação relacionada