Rinominare tutti i file

Come rinominare tutti i file della directory corrente con un'estensione di .tgz a .tar.gz? Provai

find . -iname *.tgz --exec mv {} {}.tar.gz \; 

ma non funziona come previsto.

6 Solutions collect form web for “Rinominare tutti i file”

È utile rename .tgz .tar.gz *.tgz

http://linux.die.net/man/1/rename

 ls *.tgz | sed 's/\(.*\).tgz$/mv "&" "\1.tar.gz"/' | sh 
 for i in *.tgz; do mv "$i" "${i/.tgz}".tar.gz; done 

rename è una bella. Ma si dovrebbe guardare per i derivati ​​Debian – non forniscono la stessa versione di altre distribuzioni.

Debian / Ubuntu / amici:

 # rename 's/\.tgz$/\.tar.gz/ *.tgz 

Tutti gli altri per quanto ne so – http://linux.die.net/man/1/rename

 # rename .tgz .tar.gz *.tgz 

Potrebbe essere necessario fare qualcosa di simile:

 [rilindo@kvm0001 bar]$ ls -la total 8 drwxr-xr-x. 2 rilindo cgred 4096 Oct 20 23:16 . drwxr-xr-x. 8 rilindo cgred 4096 Oct 20 23:10 .. -rw-r--r--. 1 rilindo cgred 0 Oct 20 23:15 bar.txt -rw-r--r--. 1 rilindo cgred 0 Oct 20 23:15 baz.txt -rw-r--r--. 1 rilindo cgred 0 Oct 20 23:16 foo.txt [rilindo@kvm0001 bar]$ for i in `find . -type f -iname "*.txt"`; do j=`echo $i | sed 's/.txt$/.doc/'`; mv $i $j; done [rilindo@kvm0001 bar]$ ls -la total 8 drwxr-xr-x. 2 rilindo cgred 4096 Oct 20 23:16 . drwxr-xr-x. 8 rilindo cgred 4096 Oct 20 23:10 .. -rw-r--r--. 1 rilindo cgred 0 Oct 20 23:15 bar.doc -rw-r--r--. 1 rilindo cgred 0 Oct 20 23:15 baz.doc -rw-r--r--. 1 rilindo cgred 0 Oct 20 23:16 foo.doc [rilindo@kvm0001 bar]$ 

Così con questa string di command:

 for i in `find . -type f -iname "*.txt"`; do j=`echo $i | sed 's/.txt$/.doc/'`; mv $i $j; done 

Ottengo l'elenco dei file e per each elemento assegnare il nome del file con una nuova estensione a una variabile e rinominare each file a quella variabile.

Questo, naturalmente, probabilmente non è uno script perfetto, ma credo che tu abbia l'idea.

Raccommand 'mmv'. Abbastanza semplice e less sobject a errori rispetto a 'per' espressioni.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.