2014-05-19 19 views
6

Ciao sto usando stucco e cercando di rinominare un nome di file con il timestamp attuale ... Ho usato seguente comando per rinominare i file e in base alla data mv abc.log $ (date +% F) prod.txtRinomina il comando di file in unix con timestamp

sopra rinomina comando ma non in grado di rinominare con il tempo, dando in uscita come: 2014-05-12prodabc.log comando

E seguendo abc.log $ (data +% y) $ (data +% m) $ (data +% d) abcprod.log

con output come: 140512abc.log

In realtà il mio requisito è il seguente.

rename abc.log to abc-current timestamp.log 
e.g abc.log become abc-12-05-2014-17:31.log 
then create new file abc.log 

Si prega di aiuto, Ringraziando tutti voi in anticipo ..

+0

Possibile duplicato di [Linux Rinomina file con solo ora/data stamp] (http://stackoverflow.com/questions/10639088/linux-rename-file-with-only-time-date-stamp) –

risposta

13

È possibile utilizzare

mv test.dat test_$(date +%d-%m-%Y).dat 

Se volete sapere come è possibile controllare l'output di dare un'occhiata alle pagine di manuale di data. .

man date 
1

questo questo:

str=abc; mv ${str}.log ${str}-$(date +%F'-'%T).log 
3

Utilizzare questa:

mv abc.log $(date +%F-%H:%M).log && touch abc.log 

Qui,

+%F-%H:%M vi darà un formato come 2014-05-19-14:47. Se la ridenominazione ha avuto esito positivo, touch creerà un nuovo file vuoto.

-1

Se si utilizza cPanel per creare un processo cron: fare attenzione che è necessario tornare barra per%. funziona: cp log.txt log. date +"\%d\%m\%Y" .txt

+0

cp log.txt log_ \ 'date +" \% d \% m \% Y "\" .txt – tao