Copia più file con la stessa estensione ma aggiungi data


0

Voglio creare un singolo comando che eseguirà il backup di tutti i miei *.dbfile in una directory, ma voglio aggiungere la data corrente.

a.db -> a_2016-04-21.db

b.db -> b_2016-04-21.db

c.db -> c_2016-04-21.db

So che c'è il:

cp a{.db,_`date +%F`.db}

comando, ma non sono sicuro di come creare un singolo comando in grado di copiare tutti i miei *.dbfile

Risposte:


1

Crea una funzione con un ciclo nel tuo file ~ / .bashrc:

mybackup() {
  dir="/path/to/dir/with/db/files"

  d="$(date +%F)"
  cd "$dir" && for i in *.db; do 
    echo cp "$i" "${i}${d}.db"
  done && cd -
}

Se tutto sembra a posto, rimuovilo echo.

Sintassi: mybackup


Bellissimo. Ho finito per aggiungere f="${i%.*}"e poi sostituito icon fperché non volevo solo il nome del file, non l'estensione. In questo modo il file risultante sarà a_2016-04-21.dbinvecea.db_2016-04-21.db
Bijan

Sì, questo è un bug. Buona pesca!
Ciro il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.