Adicionando a @Marks answer
Podemos fazer isso com a ajuda das opções -T
e --transform
do comando tar
.
Eu tenho a estrutura de diretórios como abaixo.
|-- foo1
| |-- file1.txt
| |-- file2.txt
| '-- file3.txt
|-- foo2
| |-- file4.txt
| |-- file5.txt
| '-- file6.txt
|-- foo3
| |-- file7.txt
| |-- file8.txt
| '-- file9.txt
'-- foo4
|-- file10.txt
|-- file11.txt
'-- file12.txt
Podemos tar os arquivos com o nome do diretório incluído
$ find -type f | tar --transform="s,/,-,2" -czvf compress.tgz -T -
E sem o nome do diretório incluído.
$ find -type f | tar --transform="s,.*/,," -czvf compress.tgz -T -