Como fazer um script bash gerar um novo nome de arquivo toda vez que ele é executado?

4

Gostaria de criar um arquivo .tar de um diretório específico todos os dias da semana. A maneira que eu gostaria de fazer é com um script bash fazendo um arquivo tar todos os dias com o crontab.

Eu queria saber, existe uma maneira de regular o nome do arquivo tar que o script bash faz? Agora mesmo é o mesmo toda vez que o arquivo é feito, porque o bash tem apenas um comando: tar -cvf file.tar /home/name/folder/

Mas gostaria que fosse ligeiramente diferente com base no dia, p. FileTus.tar , FileWed.tar , FileFri.tar , etc.

Existe uma maneira de fazer isso com os comandos do terminal?

Obrigado

    
por agmb 14.08.2012 / 16:16

2 respostas

8

O comando date pode produzir uma data como texto no formato que você quiser. Você poderia usá-lo em um script como:

tar -cvf File$(date +%a).tar /home/name/folder

Isso produziria FileMon.tar , FileTue.tar como acima. Veja man date para uma descrição dos diferentes formatos de data que ele pode produzir.

    
por chronitis 14.08.2012 / 16:27
4

Em vez de apenas nomes de dias, por que não fazer um formato de data completo? Dessa forma, o mesmo nome de arquivo não é gerado toda semana:)

Algo parecido com isto -

nits@excalibur:~$ tar -cvf /home/nits/Desktop/File$(date +%d%B%Y).tar Music/

produziria uma saída como essa -

nits@excalibur:~$ ls ~/Desktop/
File14August2012.tar

Para algo junto com um timestamp (como solicitado nos comentários):

nits@excalibur:~$ tar -cvf "/home/nits/Desktop/File$(date +%d%B%Y_%H:%M).tar" Music/
nits@excalibur:~$ ls ~/Desktop/
File14August2012_20:14.tar
    
por Nitin Venkatesh 14.08.2012 / 16:31

Tags