GNU/Linux >> Linux Esercitazione >  >> Linux

Come rinominare più file contemporaneamente in Linux

Credo che tu sappia già come rinominare i file in Linux con il comando mv. Lo usi semplicemente nel formato:

mv old_file_name new_file_name

Non c'è niente di sbagliato in questo metodo. Questo è il modo standard, dopotutto.

Ma che dire della situazione in cui devi rinominare diversi file. Usare il comando mv uno per uno richiederebbe molto tempo e dovrebbe essere sicuramente evitato.

È possibile utilizzare l'opzione del comando find exec con il comando mv per automatizzare questo processo. Ma lascia che ti dica un modo ancora più semplice per rinominare i file in base al modello regex.

Rinomina comando in Linux

C'è un'utilità da riga di comando chiamata rename che ti permette di rinominare tutti i file che corrispondono a un certo modello nella forma regex di Perl. Il comando rename funziona solo sul nome del file, non sul file stesso.

Questo è il comando di ridenominazione della sintassi che segue:

rename [options] perlexpr [files]

Questo 'comando rinomina' ha le seguenti opzioni:

  • -v :modalità dettagliata.
  • -n :Nessuna azione. Mostra i file che verrebbero rinominati ma non rinominare i file.
  • -o :nessuna sovrascrittura. Non sovrascrivere i file esistenti.
  • -f :Forza. Sovrascrivi i file esistenti.
  • -s :non rinomina il collegamento simbolico ma la sua destinazione

Si noti che il comando rename non è un'utilità standard preinstallata sulle distribuzioni Linux come il comando mv o cp. Potrebbe essere necessario installarlo. Se sei un utente sudo in Ubuntu o Debian, puoi usare questo comando per installare rename:

sudo apt install rename

Ora ti starai chiedendo come rinominare i file con il comando rename. Lascia che ti mostri due scenari pratici in cui questo comando ti farà risparmiare un sacco di tempo.

Scenario 1:sostituire un carattere con un altro in tutti i nomi di file in Linux

Immagina di avere spazi bianchi in diversi nomi di file. È un incubo gestire gli spazi nei nomi dei file in Linux. Questo è il motivo per cui nessun utente esperto nomina mai un file con spazi al suo interno.

Naturalmente, vorrai rimuovere gli spazi e sostituirli con un trattino basso (_). Il comando di ridenominazione sarà piuttosto utile qui. Vediamo come.

Per sostituire gli spazi con i trattini bassi nei nomi di tutti i file nella directory corrente, tutto ciò che devi fare è usare il comando renam in questo modo:

rename 's/ /_/g' *

Se hai una familiarità anche remota con regex, capiresti che s/ /_/g sta cercando spazio e sta sostituendo tutte le occorrenze di spazio con _.

La parte interessante è l'asterisco(*). L'asterisco ti dice di rinominare i file corrispondenti nella directory corrente.

Ma cosa succede se si desidera rinominare anche tutti i file corrispondenti nelle sottodirectory? In tal caso, puoi utilizzare due asterischi come questo:

rename 's/ /_/g' **

Scenario 2:modifica delle estensioni di più file contemporaneamente in Linux

Ecco un altro scenario per te. Hai diversi file con nomi come mio_file.xyz e vuoi rinominare questi file in modo che diventino qualcosa come mio_file.abc.

Per modificare le estensioni di più file contemporaneamente, puoi utilizzare il comando rename nel modo seguente:

rename 's/\.xyz$/.abc/' **

Lascia che ti spieghi il comando precedente.

's/\.xyz$/.abc/' :questa è un'espressione regolare che significa sostituire il carattere .xyz alla fine della riga con .abc. L'addizionale \ viene utilizzato per sfuggire a . altrimenti significherebbe abbinare qualsiasi carattere prima di xyz.

** significa cercare nella directory corrente e nelle sue sottodirectory.

Ti è piaciuto il comando rinomina?

Non molte persone sono a conoscenza del comando rename. Ciò può essere dovuto anche al fatto che rename non è un comando di fatto su molti sistemi Linux.

Tuttavia, trovo questo comando piuttosto utile quando si tratta di rinominare più file contemporaneamente.

E tu? Hai usato il comando rinomina in passato? Come preferisci rinominare più file contemporaneamente?


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 più file usando Trova?

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

Come rinominare i file usando la riga di comando in Linux

Come rinominare uno o più file in Linux

8 metodi per rinominare più file contemporaneamente in Linux

Come contare i file nella directory su Linux

Come eseguire più comandi Linux contemporaneamente nel terminale Linux

Linux Rinomina estensione file multipli