Anexa o mesmo timestamp a vários nomes de arquivos

2

Eu tenho vários arquivos que eu ftp cada hora. O sistema de recebimento precisa ter algum tipo de identificador que veio do mesmo lote, portanto, gostaria de acrescentar um registro de data e hora ao nome do arquivo. Só isso é bastante fácil, mas como quero que cada arquivo tenha o mesmo registro de data e hora (para que possa servir como identificador de lote), não consigo descobrir como fazer isso.

Então, eu tenho:

file1.txt
file2.txt
file3.txt

E eu quero ter:

file1_20141110184303.txt
file2_20141110184303.txt
file3_20141110184303.txt

Qualquer uso do date +%Y%m%d%H%M%S após o primeiro uso obviamente resultará em valores diferentes em segundos, então eu gostaria de ter o primeiro registro de data e hora anexado aos arquivos restantes.

    
por George Jones 12.11.2014 / 17:25

1 resposta

4

Basta armazenar o valor de date +%Y%m%d%H%M%S em uma variável:

x=$(date +%Y%m%d%H%M%S)

e mais tarde

mv file1 file1_$x.txt
mv file2 file2_$x.txt
...

ou em um loop para todos os arquivos *.txt

for file in *.txt; do echo mv "$file" "${file%.txt}"_$x.txt; done

(remova echo se estiver satisfeito com o que vê no ecrã)

    
por 12.11.2014 / 17:38