Quero encontrar e arquivar todos os meus scripts que terminam em .sh, então escrevi algo assim:
touch ~/archive.tar; find ~ -type f -name '*.sh' -exec rvf ~/archive.tar {} \;
O problema é que depois de criar um arquivo chamado archive.tar, o arquivo não descompacta os arquivos no diretório atual, mas nos diretórios de onde foi arquivado. Por exemplo, pode ser chamado um script arquivado, ~/Desktop/wtf/delete.sh
mas ele será extraído para a pasta wtf
e não para o diretório atual onde estou atualmente. Então, como edito meu script de localização para ter todos os scripts neste formato ./filename.sh?
Responder1
Supondo que você esteja usando GNU tar
, você pode dizer:
tar --transform 's/.*\///' -xzf archive.tgz
Isso removerá tudo, até a última barra, dos nomes dos arquivos.