GNU/Linux >> Linux Esercitazione >  >> Linux

Come rinominare più file usando Trova?

Voglio rinominare più file (file1 … fileN in file1_rinomed … fileN_rinomed) usando find comando:

find . -type f -name 'file*' -exec mv filename='{}' $(basename $filename)_renamed ';'

Ma ottenendo questo errore:

mv: cannot stat ‘filename=./file1’: No such file or directory

Questo non funziona perché il nome del file non è interpretato come variabile di shell.

Risposta accettata:

Quello che segue è una correzione diretta del tuo approccio:

find . -type f -name 'file*' -exec sh -c 'x="{}"; mv "$x" "${x}_renamed"' \;

Tuttavia, questo è molto costoso se hai molti file corrispondenti, perché avvii una nuova shell (che esegue un mv ) per ogni partita. E se hai caratteri divertenti in qualsiasi nome di file, questo esploderà. Un approccio più efficiente e sicuro è questo:

find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}_renamed

Ha anche il vantaggio di lavorare con file con nomi strani. Se find lo supporta, questo può essere ridotto a

find . -type f -name 'file*' -exec mv {} {}_renamed \;

Il xargs versione è utile quando non si utilizza {} , come in

find .... -print0 | xargs --null rm

Qui rm viene chiamato una volta (o con molti file più volte), ma non per tutti i file.

Ho rimosso il basename nella tua domanda, perché probabilmente è sbagliato:sposteresti foo/bar/file8 a file8_renamed , non foo/bar/file8_renamed .

Modifiche (come suggerito nei commenti):

  • Aggiunto find abbreviato senza xargs
  • Aggiunto adesivo di sicurezza

Linux
  1. Come rinominare i file in Linux

  2. Come comprimere più file su Linux

  3. Come rinominare più file in un singolo comando o script in Unix??

  4. Come rinominare molti file usando un'espressione regolare?

  5. Come rinominare più file contemporaneamente in Linux

Come trovare file in Linux

Come trovare i file usando la riga di comando nel terminale Linux

Come rinominare i file usando la riga di comando in Linux

Come rinominare uno o più file in Linux

Come modificare più file usando Vim Editor

Come trovare file in Debian