Os comandos que eu digitei
$ tar -f "backup_$(date +%D).tar.gz" -czv test2
Os resultados do comando
tar (child): backup_02/22/25.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Não entendi o que estou fazendo errado. Estou tentando criar um backup chamado backup com a data do backup. Mas ele diz que não existe. Bem, é claro que não existe. É isso que estou tentando fazer - é fazer com que exista. Dois arquivos de teste que estou incluindo da minha pasta Documentos. Por favor, mostre o caminho.
A mensagem de erro mostra que o nome do arquivo é:
backup_02/22/25.tar.gz
Isto é, ele contém barras – e barras são sempre tratadas como separadores de caminho no Linux e em outros sistemas do tipo Unix. (Não há caractere de escape para elas; elas são sempre separadores de caminho.) Então o que você está pedindo para 'tar' criar é:
e a mensagem de erro aparece porque o diretório
backup_02/22/
ainda não existe, portanto é impossível criar arquivos até que você execute 'mkdir' nele primeiro (diretórios não são criados implicitamente).Use um formato de data diferente, por exemplo ,
%m_%d_%Y
para02_22_25
, ou%F
para2025-02-22
(%Y-%m-%d), o que é útil para backups, pois você pode classificar os arquivos por nome.(É claro que você pode manter o formato atual e
mkdir -p
os diretórios necessários, mas não acho que faça sentido prático agrupar os backups primeiro por mês e depois por ano.)