Estou tentando criar um script que pode compactar arquivos com uma certa extensão em vários diretórios em um único tar-ball. Atualmente, o que tenho no arquivo de script é:
find "$rootDir" -name '*doc' -exec tar rvf docs.tar {} \;
Onde $rootDir
é o caminho base para pesquisar.
Isso é bom, exceto que os caminhos são absolutos no arquivo tar. Eu preferiria que os caminhos fossem relativos $rootDir
. Como eu faria isso?
Exemplo de corrente em tar -tf docs.tar
que $rootDir
é /home/username/test
emitida:
home/username/test/subdir/test.doc
home/username/test/second.doc
O que eu desejo que a saída seja:
./subdir/test.doc
./second.doc
cd $rootDir
ecd -
(pelo menos embash
).( cd $rootDir ; find ... )
também seria possível, ou seja, fazer tudo em um subshell.Você pode usar o
%P
formato na-printf
diretiva:será exibido no seu exemplo:
Você pode usar esta
find
lista em umafor
expressão para executar nosso comando exec, como em:fonte