Existem dois problemas para resolver:
- como remover os arquivos sem interferir na sua saída e
- onde colocar a saída enquanto ela está sendo criada.
Se você não tiver nenhum arquivo de ponto em /var/backup/SQL
, é simples:
- basta criar sua saída com o nome "."
- adicione ao arquivo tar usando a opção
--remove-files
e - renomeie a saída para
tmp.tar.gz
quando terminar.
Algo como
cd /var/backup/SQL
tar cfz .tmp.tar.gz --remove-files * && mv .tmp.tar.gz tmp.tar.gz
Se você fizer ter arquivos-ponto, você pode construir uma lista dos arquivos a serem classificados e então usar essa lista para construir o arquivo tar. Usando o Linux, você pode usar a opção -T
( --files-from
) para ler essa lista, por exemplo,
cd /var/backup/SQL
find . -type f >/tmp/list
tar czf tmp.tar.gz --remove-files --files-from /tmp/list
(Alguém com certeza sugerirá a substituição do processo em vez de um arquivo temporário, mas isso tem o inconveniente de tamanho limitado, o que pode ser um problema).