Como tar apenas arquivos em vários diretórios, mas não no diretório?

1

Eu tenho três pastas na pasta Teste.

Test ----> dir1, dir2, dir3

Sob dir1, dir2 e dir3, tenho muitos arquivos. Eu quero tar apenas os arquivos não o dir1, dir2 e dir3.

    
por Beginner 14.08.2014 / 13:04

1 resposta

2

Em Test :

pax -w's|.*/||' dir[1-3]/* | xz > file.tar.xz

arquivaria os arquivos sem seus componentes de caminho.

Observe que dir[1-3]/* omitiria arquivos ocultos. Para links simbólicos, o -s também reescreveria os destinos de links simbólicos.

Se você quer apenas os arquivos regulares , e supondo que nenhum dos seus nomes de arquivo contenha caracteres de nova linha, você poderia fazer:

find dir[1-3] -type f | pax -ws'|.*/||' | xz > file.tar.xz

Se os nomes dos arquivos contiverem caracteres de nova linha, em alguns sistemas, você pode escrever:

find dir[1-3] -type f -print0 | pax -w0s'|.*/||' | xz > file.tar.xz

Embora find e pax sejam comandos padrão, -print0 e -0 não são tão YMMV.

    
por 14.08.2014 / 13:11

Tags