GNU/Linux >> Linux Esercitazione >  >> Linux

8 metodi per rinominare più file contemporaneamente in Linux

In questo tutorial impareremo come rinominare più file contemporaneamente in Linux utilizzando vari strumenti. Tutti gli esempi forniti qui sono testati in Ubuntu, tuttavia dovrebbero funzionare su qualsiasi sistema operativo Linux.

Introduzione

Come forse già saprai, utilizziamo mv comando per rinominare o spostare file e directory nei sistemi operativi simili a Linux e Unix.

Ma, il mv il comando non supporterà la ridenominazione in batch dei file in una volta. Può rinominare un solo file alla volta. Cosa faresti se volessi rinominare più file alla volta? Non preoccuparti!

Ci sono alcune altre utilità disponibili per rinominare i file in batch in Linux.

Rinomina più file contemporaneamente in Linux

Potrebbero esserci molti comandi e utilità per rinominare in blocco un gruppo di file. Al momento della stesura di questo, sono a conoscenza di 8 modi diversi per rinominare i file in batch. Continuerò ad aggiornare l'elenco se in futuro mi imbatterò in un nuovo metodo.

Metodo 1:rinomina in batch i file utilizzando mmv

Il mmv l'utilità viene utilizzata per spostare, copiare, aggiungere e rinominare i file in blocco utilizzando caratteri jolly standard nei sistemi operativi simili a Linux e Unix. È disponibile nei repository predefiniti dei sistemi basati su Debian.

Per installare mmv su Debian, Ubuntu, Linux Mint e Pop OS, esegui il seguente comando:

$ sudo apt-get install mmv

Diciamo che hai i seguenti file nella tua directory corrente.

$ ls
a1.txt a2.txt a3.txt

Ora vuoi rinominare tutti i file che iniziano con la lettera "a" a "b" . Naturalmente, puoi farlo manualmente in pochi secondi.

Ma pensi solo se hai centinaia di file e vuoi rinominarli? È un processo che richiede molto tempo. Ecco dove mmv il comando viene in aiuto.

Per rinominare tutti i file che iniziano con la lettera "a" a "b" , esegui semplicemente:

$ mmv a\* b\#1

Verifichiamo se i file sono stati rinominati o meno.

$ ls
b1.txt b2.txt b3.txt

Come puoi vedere, tutti i file iniziano con la lettera "a" (cioè a1.txt , a2.txt , a3.txt ) vengono rinominati in b1.txt , b2.txt , b3.txt .

Spiegazione

Nell'esempio precedente, il primo parametro (a* ) è il ‘from’ pattern e il secondo parametro è ‘to’ modello (b#1 ).

Come nell'esempio sopra, mmv cercherà tutti i nomi di file che iniziano con la lettera 'a' e rinomina i file corrispondenti in base al secondo parametro, ad esempio ‘to’ modello.

Utilizziamo caratteri jolly, come ‘*’ , ‘?’ e ‘[]‘ , per abbinare uno o più caratteri arbitrari. Tieni presente che devi evitare i caratteri jolly, altrimenti verranno espansi dalla shell e mmv non li comprenderà.

Il ‘#1′ nel ‘to’ pattern è un indice di caratteri jolly. Corrisponde al primo carattere jolly trovato nel ‘from’ modello. Un ‘#2′ nel ‘to’ pattern corrisponderebbe al secondo carattere jolly e così via.

Nel nostro esempio, abbiamo un solo carattere jolly (l'asterisco), quindi scriviamo un #1 . E anche il segno hash dovrebbe essere sfuggito. Inoltre, puoi anche racchiudere i modelli tra virgolette.

Puoi anche rinominare tutti i file con una determinata estensione con un'estensione diversa. Ad esempio, per rinominare tutti i .txt file in .doc formato file nella directory corrente, esegui semplicemente:

$ mmv \*.txt \#1.doc

Ecco un altro esempio. Supponiamo che tu abbia i seguenti file.

$ ls
abcd1.txt abcd2.txt abcd3.txt

Vuoi sostituire la prima occorrenza di abc con xyz in tutti i file nella directory corrente. Come faresti?

Semplice.

$ mmv '*abc*' '#1xyz#2'

Tieni presente che nell'esempio sopra ho racchiuso i modelli tra virgolette singole.

Controlliamo se "abc" è effettivamente sostituito con "xyz" o meno.

$ ls
xyzd1.txt xyzd2.txt xyzd3.txt

Vedere? I file abcd1.txt , abcd2.txt e abcd3.txt sono stati rinominati in xyzd1.txt , xyzd2.txt e xyzd3.txt .

Un'altra caratteristica notevole del comando mmv è che puoi semplicemente stampare l'output invece di rinominare i file usando -n opzione come di seguito.

$ mmv -n a\* b\#1 
a1.txt -> b1.txt
a2.txt -> b2.txt
a3.txt -> b3.txt

In questo modo puoi semplicemente verificare cosa farebbe effettivamente il comando mmv prima di rinominare i file.

Per maggiori dettagli, fare riferimento alle pagine man.

$ man mmv

Metodo 2:rinomina in blocco i file utilizzando l'utilità di ridenominazione

Il rinominare l'utilità rinominerà i file dati sostituendo la prima occorrenza dell'espressione nel loro nome con la sostituzione.

Il comando rename viene preinstallato nella maggior parte dei sistemi operativi simili a Unix. Se non è disponibile per impostazione predefinita, esegui il seguente comando per installarlo su sistemi basati su Debian:

$ sudo apt install rename

Ad esempio, ho i seguenti file nella directory corrente.

$ ls
abcd1.txt abcd2.txt abcd3.txt

Sostituiamo la prima occorrenza di abc con xyz ovunque si trovi. Per farlo, esegui:

$ rename 's/abc/xyz/' *

Ora verifica se le modifiche sono state apportate con ls comando.

$ ls
xyzd1.txt xyzd2.txt xyzd3.txt

A volte, potresti semplicemente stampare l'output invece di rinominare i file. In tal caso, utilizza -n flag per visualizzare quali rinominazioni avverrebbero senza eseguirle:

$ rename -n 's/abc/xyz/' *
rename(abcd1.txt, xyzd1.txt)
rename(abcd2.txt, xyzd2.txt)
rename(abcd3.txt, xyzd3.txt)

Come puoi vedere, il comando sopra non ha apportato modifiche, ma mostra solo quali rinominazioni si verificherebbero.

Puoi forzare l'attività di ridenominazione anche se l'operazione sovrascrive i file esistenti utilizzando -f segnala come sotto.

$ rename -f 's/abc/xyz/' *

Se non vuoi sovrascrivere i file, puoi semplicemente convertirli in lettere maiuscole o minuscole (e viceversa) per evitare errori "già esistenti".

Per convertire tutti i nomi di file in minuscolo, quindi:

$ rename 'y/a-z/A-Z/' *

Verifichiamo se le modifiche sono state apportate.

$ ls
ABCD1.TXT ABCD2.TXT ABCD3.TXT

Sì, le lettere nei nomi dei file sono state modificate da minuscole a maiuscole.

Allo stesso modo, per convertire i nomi dei file in minuscolo, esegui:

$ rename 'y/A-Z/a-z/' *

Possiamo anche rimuovere tutte le righe vuote in un nome file. Ad esempio, ho il seguente file.

$ ls
Clouds of Sunset.mp3

Per rimuovere tutti gli spazi vuoti nel nome del file sopra, esegui:

$ rename "s/ *//g" *

Ora, il nome del file non ha spazi vuoti.

$ ls
CloudsofSunset.mp3

Sostituisci gli spazi vuoti con i trattini bassi:

$ rename 's/\s+/_/g' *

Potresti voler cambiare l'estensione del file, ma non rinominare i nomi dei file. È anche possibile. Il comando seguente rinominerebbe tutti i *.txt file in *.doc .

$ rename 's/\.txt$/.doc/' *.txt

Verifica le modifiche utilizzando ls comando:

$ ls
abcd1.doc abcd2.doc abcd3.doc

Per rimuovere l'estensione in tutti i file corrispondenti a .txt , esegui:

$ rename 's/\.txt$//' *.txt

Per maggiori dettagli, fare riferimento alle pagine man.

$ man rename

Metodo 3 - Rinomina i file usando renameutils

Le utility rename è un insieme di programmi progettato per rinominare in batch file e directory in modo più semplice e veloce.

Renameutils è costituito dai seguenti cinque programmi:

  1. qmv (mossa rapida),
  2. qcp (copia rapida),
  3. imv (mossa interattiva),
  4. icp (copia interattiva),
  5. deurlname (elimina URL).

Installa renameutils in Linux

Renameutils è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux. Per installarlo su sistemi basati su Arch, abilita il repository della community ed esegui:

$ sudo pacman -Syu renameutils

Su sistemi basati su Debian:

$ sudo apt install renameutils

Vediamo ora alcuni esempi.

1. qmv

Il programma qmv aprirà i nomi dei file in una directory nel tuo editor di testo predefinito e ti consentirà di modificarli.

Ho i seguenti tre file in una directory denominata 'otechnix'.

$ ls ostechnix/
abcd1.txt abcd2.txt abcd3.txt

Per rinominare i nomi dei file nella directory 'otechnix', fai semplicemente:

$ qmv ostechnix/

Ora, cambia i nomi dei file come desideri. Vedrai l'anteprima dal vivo mentre modifichi i nomi dei file.

In alternativa, puoi cd nella directory ed eseguire semplicemente 'qmv' .

Una volta aperti i file, vedrai le due colonne come mostrato nello screenshot seguente.

Il lato della colonna di sinistra mostra i nomi dei file di origine e la colonna di destra mostra i nomi di destinazione (i nomi dei file di output che otterrai dopo la modifica).

Ora, rinomina tutti i nomi di output sul lato destro come desideri.

Dopo aver rinominato i nomi dei file, salva ed esci dal file.

Infine, vedrai il seguente output:

Plan is valid.

abcd1.txt -> xyzd1.txt
abcd2.txt -> xyzd2.txt
abcd3.txt -> xyzd3.txt
   Regular rename

abcd1.txt -> xyzd1.txt
abcd2.txt -> xyzd2.txt
abcd3.txt -> xyzd3.txt

Ora controlla se le modifiche sono state effettivamente apportate utilizzando 'ls' comando:

$ ls ostechnix/
xyzd1.txt xyzd2.txt xyzd3.txt

Vedere? Tutti i file vengono rinominati. Non solo i file, renameutils rinominerà anche i nomi delle directory.

Ecco un breve video demo del programma qmv:

Se non vuoi modificare i nomi dei file in formato a doppia colonna, usa il comando seguente per visualizzare solo la colonna del file di destinazione.

$ qmv -f do ostechnix/

Dove, '-f' fa riferimento al format e 'do' fa riferimento a destination-only .

Ora vedrai solo la colonna di destinazione. Questa è la colonna in cui apportiamo le modifiche.

Al termine, salva e chiudi il file.

Per maggiori dettagli, fare riferimento alle pagine man.

$ man qmv

2. qcp

Il programma qcp funziona come qmv, ma copia i file invece di rinominarli. In questo caso, otterrai due istanze dello stesso file. Ciò significa che manterrà sia i file originali che quelli duplicati.

$ qcp ostechnix/

Rinomina i nomi dei file elencati sul lato destro. Salva ed esci dal file. Infine, verifica le modifiche apportate utilizzando il comando ls:

$ ls ostechnix/
abcd1.txt abcd2.txt abcd3.txt xyzd1.txt xyzd2.txt xyzd3.txt

Per maggiori dettagli, fare riferimento alle pagine man.

$ man qcp

3. imv

Il programma imv ci permette di rinominare interattivamente i nomi dei file. Ovviamente, non è per la ridenominazione in blocco. Puoi rinominare i file solo uno per uno.

$ imv ostechnix/abcd1.txt

Modifica il nome del file come preferisci e premi INVIO per rinominarlo.

Per maggiori dettagli, fare riferimento alle pagine man.

$ man imv

4. icp

Il programma icp è lo stesso di imv , ma copia i file invece di spostarli.

Esempio:

$ icp ostechnix/abcd1.txt

Per ulteriori casi d'uso e comandi, fare riferimento alle pagine man.

$ man icp

Non so perché gli sviluppatori abbiano aggiunto queste due utilità mentre possiamo fare lo stesso usando mv e cp comando.

5. nome

Il nome di riferimento il programma rimuove i caratteri codificati nell'URL (come %20 che rappresenta lo spazio) dai nomi dei file. Alcuni programmi, ad esempio w3m , tendono a mantenere quei caratteri codificati nei file salvati.

Puoi utilizzare questo strumento per ripulire i nomi dei file scaricati da Internet.

Dai un'occhiata al seguente file.

$ ls
omg%20ponnu%20ily%20kannu.mp3

Ci sono alcuni caratteri e numeri speciali nel nome del file. Se lo pulisci, esegui semplicemente:

$ deurlname omg%20ponnu%20ily%20kannu.mp3

Ora guarda come è cambiato il nome del file.

$ ls
omg ponnu ily kannu.mp3

Il nome del file è pulito e leggibile.

Fare riferimento alle pagine man per maggiori dettagli.

$ man deurlname

Inoltre, fare riferimento al sito Web del progetto fornito alla fine di questa guida.

Metodo 4 - Rinomina più file contemporaneamente usando vimv

Come dice il nome, Vimv è un'utilità della riga di comando per rinominare in blocco i file utilizzando Vim editore. Ovviamente puoi cambiare l'editor cambiando il valore di $EDITOR variabile di ambiente.

Per installare Vimv, git clona il repository:

$ git clone https://github.com/thameera/vimv.git

Copia il binario vimv nel tuo $PATH , ad esempio /usr/local/bin/ .

$ sudo cp vimv/vimv /usr/local/bin/

Infine, rendilo eseguibile:

$ sudo chmod +x /usr/local/bin/vimv

Ora vai alla directory ed esegui il seguente comando per modificare i nomi dei file.

$ vimv

Vedrai i nomi dei file nell'editor Vi. Premi i per passare alla modalità interattiva e modificare i nomi dei file come modifichi il testo nell'editor Vi. Al termine, premi ESC digitare e digitare :wq per salvare ed uscire.

I file all'interno della directory dovrebbero essere rinominati ora. Ecco un breve video demo.

Per maggiori dettagli, fai riferimento al repository GitHub del progetto fornito alla fine di questa guida.

Metodo 5 - Rinomina in batch i file usando Emacs

Se hai un sistema con l'editor Emacs installato, puoi eseguire facilmente la ridenominazione in batch seguendo questi passaggi.

1. Apri il tuo editor Emacs.

2. Premi Alt+x e digita quanto segue e premi INVIO per passare a wdired-mode (abbreviazione di "modalità editor di directory scrivibile").

$ dired

3. Immettere il percorso della directory (ad es. /home/sk/ostechnix ) che contiene i file da rinominare e premere ENTER chiave.

4. Quindi, premi Ctrl+x e Ctrl+q per passare alla modalità di lettura-scrittura.

5. Ora, rinomina i file. Al termine, premi Ctrl+c e Ctrl+c (due volte) per salvare le modifiche. Per annullare le modifiche, premi Ctrl+c e Ctrl+k .

Guarda il video dimostrativo:

Vedere? È molto semplice rinominare più file contemporaneamente.

Metodo 6 - Rinomina in blocco i file con il file manager Thunar

Il gestore di file Thunar ha una rinomina collettiva incorporata opzione per impostazione predefinita.

Thunar è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux.

Per installarlo su sistemi basati su Arch, esegui:

$ sudo pacman -S thunar

Su Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux:

$ sudo dnf install thunar

Oppure,

$ sudo yum install thunar

Su openSUSE:

$ sudo zypper install thunar

Su Debian, Ubuntu, Linux Mint:

$ sudo apt-get install thunar

Una volta installato, è possibile avviare l'utilità di ridenominazione in blocco dal menu o dall'utilità di avvio dell'applicazione. Per avviarlo da Terminale, usa il seguente comando:

$ thunar -B

Ecco come appare la ridenominazione collettiva.

Fai clic sul segno più e scegli l'elenco di file che desideri rinominare. La ridenominazione in blocco può rinominare il nome dei file, il suffisso dei file o sia il nome che il suffisso dei file.

Thunar attualmente supporta i seguenti rinominatori in blocco:

  • Inserisci data o ora
  • Inserisci o sovrascrivi
  • Numerazione
  • Rimuovi caratteri
  • Cerca e sostituisci
  • Maiuscole/minuscole

Quando selezioni uno di questi criteri dall'elenco di selezione, vedrai un'anteprima delle modifiche nel Nuovo nome colonna, come mostrato nello screenshot qui sotto.

Una volta scelti i criteri, fai clic su Rinomina file opzione per rinominare i file.

Puoi anche aprire la ridenominazione in blocco da Thunar selezionando due o più file. Dopo aver scelto i file, premi F2 oppure fai clic con il pulsante destro del mouse e scegli Rename .

Lettura consigliata:

  • [Suggerimenti Bash] Rinomina i file senza digitare il nome completo due volte in Linux

Metodo 7 - Rinomina l'elenco dei file con KRename

KRename è un rinominatore di file batch che può rinominare un elenco di file in base a un insieme di espressioni. Ti consente di rinominare un gran numero di file semplicemente aggiungendo una sequenza di numeri o cambiando maiuscolo.

KRename è appositamente progettato e installato per impostazione predefinita nelle distribuzioni KDE. Puoi anche installarlo su altre distribuzioni Linux.

Ad esempio, per installare KRename su Fedora, esegui semplicemente:

$ sudo dnf install krename

Avvia l'applicazione KRename dall'utilità di avvio dell'applicazione o dal menu e aggiungi tutti i file da rinominare in File sezione.

Nella Destinazione sezione, assicurati di aver selezionato l'opzione "Rinomina file di input"..

Nei plug-in puoi scegliere qualsiasi plug-in di tua scelta, che fornisce vari tag durante la ridenominazione dei file.

Nell'ultima sezione della sezione, puoi scegliere lo schema di ridenominazione da utilizzare. Vedrai un'anteprima in basso in base allo schema che hai scelto. Una volta che sei d'accordo con le opzioni selezionate, fai clic sul pulsante Fine per rinominare i file.

I file rinominati verranno salvati nella stessa posizione.

KRename è un'utilità di ridenominazione ricca di funzionalità. Ha così tante opzioni per rinominare i file. La maggior parte delle opzioni è autoesplicativa.

Metodo 8:rinomina più file e cartelle utilizzando Smart file rinomer

Smart File Renamer è un programma grafico per rinominare più file contemporaneamente. Utilizzando Smart File Rename, puoi rinominare facilmente e rapidamente file e directory contemporaneamente con un paio di clic del mouse. È un'applicazione multipiattaforma che supporta Linux, macOS e Windows. A differenza degli altri programmi, è correttezza. La versione gratuita ha solo funzionalità limitate.

Smart File Renamer è disponibile come pacchetto snap. Puoi installarlo usando il seguente comando:

$ sudo snap install smart-file-renamer

Una volta installato, avvialo dal menu o dall'utilità di avvio dell'applicazione. Aggiungi i file e le directory che desideri rinominare e fai clic sul pulsante Rinomina in basso.

Supporta molte regole e filtri per la ridenominazione in batch. Basta sceglierli sul lato destro della finestra dell'applicazione e premere il pulsante Rinomina.

Conclusione

Ecco qua! In questa guida, abbiamo discusso 8 metodi per rinominare in blocco i file in Linux. Abbiamo fornito sia la riga di comando che i programmi grafici per rinominare più file in una volta sola. Scegli quello che fa per te e porta a termine il lavoro.

E per ora è tutto. Spero che questo sia stato utile. Conosci qualche altro metodo da aggiungere a questo elenco? Si prega di menzionarli nella sezione commenti qui sotto. Controllerò e aggiornerò questa guida di conseguenza.


Linux
  1. Rinominare un file nel terminale Linux

  2. Come rinominare i file in Linux

  3. Come comprimere più file su Linux

  4. Trova più file e rinominali in Linux

  5. Linux rinomina i file in maiuscolo

Come rinominare file e directory in Linux

Rinomina comando in Linux (rinomina più file)

Come rinominare i file usando la riga di comando in Linux

Come rinominare uno o più file in Linux

Linux Rinomina estensione file multipli

Confronto di due file nel terminale Linux