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á --include
opçã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.