Quando si lavora con i file, rinominarli è una delle azioni più elementari. In Linux, la ridenominazione di un file o una directory viene eseguita principalmente utilizzando MV. Tuttavia, quando si tratta di rinominare più file o cartelle, l'utilizzo di MV diventa complesso. Richiede la costruzione di loop e tubazioni complessi per svolgere il lavoro. Il comando di rinominato è appositamente progettato per tali situazioni.
Rinomina è un potente strumento di rinominamento batch che utilizza l'espressione Perl per rinominare più file e directory in un singolo comando. In questa guida, dai un'occhiata a come rinominare i file con rinominare.
Installazione di rinominare
Il comando di rinominato non viene preinstallato. Per fortuna, possiamo installarlo dai server del pacchetto ufficiale di qualsiasi distro Linux.
Esistono due versioni di strumento, ognuna con la propria sintassi e funzionalità. Per questa guida, ci concentreremo su quello che utilizza Perl.
Nel caso di Debian/Ubuntu, Rename è disponibile come pacchetto "Rinomina". Installa il pacchetto.
$ sudo apt update
$ sudo apt install rinominare
Nel caso di CentOS e Fedora, il nome del pacchetto è diverso. È noto come "prename". Installa il pacchetto.
$ sudo yum installa prename
Nel caso di Arch Linux, il nome del pacchetto è "Perl-Rename". Installa il pacchetto.
$ sudo pacman -s perl -rename
Utilizzo di rinominare
Diamo un'occhiata a vari modi di utilizzare il comando di rinominato.
Struttura di comando di base
Lo strumento segue la seguente struttura di comando:
$ rinomina
Il comando di rinominato è in realtà uno script perl. Funziona usando l'espressione perl. Come puoi immaginare, usarlo al massimo richiede esperienza nelle espressioni regolari perl.
Sebbene ci siano numerosi modi per costruire l'espressione di Perl, la seguente espressione è abbastanza comune da imbatterti quando si lavora con il comando di rinominato.
$ S// /
Uso di base
Qui, ho un sacco di file fittizi pronti per essere rinominati.
Il seguente comando di rinominato rinominerà tutte le estensioni dei file da txt al testo.
$ RENAME 'S/.TXT/.testo/' *.TXT
Qui, i file target da rinominare sono espressi usando il simbolo jolly (*).
Modalità verbosa
Per impostazione predefinita, la rinomina non stampano molto output. Tuttavia, avere dettagli più approfonditi sulle sue azioni può aiutare in vari scenari, specialmente quando si tratta di debug. In modalità Verbose, rinominare stampe più informazioni sul compito in corso per comprendere meglio e identificare possibili problemi.
Per eseguire Rinomina in modalità verbosa, aggiungi il flag "-v".
$ RENAME -V 'S/.TXT/.testo/' *.TXT
Funzionamento a secco
Quando si eseguono rinomina, le modifiche vengono rese permanenti. In molte situazioni, porterà a problemi inutili. Per evitare modifiche indesiderate ai nomi di file e cartelle, possiamo testare il comando usando una corsa a secco.
Una corsa a secco è fondamentalmente una prova di prova che non cambia nulla con i file e le cartelle effettivi. Tuttavia, l'utilizzo della modalità Verbose stamperà l'output come se il comando fosse effettivamente eseguito. Ecco perché è sempre una buona idea seccare la corsa con la modalità verbosa. Si consiglia di eseguire una corsa a secco prima di eseguire qualsiasi comando di rinominato su file e cartelle importanti.
Per eseguire una corsa a secco, aggiungi il flag "-n".
$ RENAME -V -N 'S/.TXT/.testo/' *.TXT
Sovrascrivere i file esistenti
Il comportamento predefinito di rinominare non è sovrascrivere i file già esistenti. Se non temi di sovrascrivere quelli esistenti, allora puoi forzare il rinominato a sovrascrivere usando il flag "-f".
$ RENAME -V -F 'S/.TXT/.testo/' *.TXT
Esempio di rinominare le espressioni perl
La struttura di base del comando di rinominato è molto semplice. Il suo potere principale è l'incorporazione delle espressioni regolari perl. L'espressione regolare è un modo intelligente per descrivere uno schema e specificare le azioni. Per i principianti, ecco una guida sull'espressione regolare usando Grep ed EGREP. Sebbene utilizzino strumenti diversi, i fondamenti dell'espressione regolare si applicano ancora.
Ecco una lista di alcune espressioni di Rinomina Common perl. Si noti che questi sono solo per riferimento. Prima di metterli in uso, eseguire sempre una corsa a secco per assicurarti che funzioni come previsto.
Sostituzione degli spazi
La seguente espressione sostituirà gli spazi nei nomi di file con un sottolineaggio.
$ 'y//_/'
Convertire i nomi dei file in maiuscolo
Hai bisogno dei nomi dei file in maiuscolo? La seguente espressione di perl combinata con il comando di rinominato farà proprio questo.
$ 'y/a-z/a-z/'
Convertire i nomi dei file in minuscolo
La seguente espressione di perl, se utilizzata con rinomina, rinominerà i nomi dei file da maiuscole a minuscolo.
$ 'y/a-z/a-z/'
Rimozione di parti dei nomi dei file
Se i nomi di file contengono contenuti non necessari, possiamo sempre rimuoverli usando l'espressione perl. Ad esempio, per rinominare i file di backup (.Bak) ai file originali, possiamo semplicemente rimuovere il ".BAK ”porzione dal nome del file.
$ 's/\ bak $ //'
Rinominamento di più modelli di abbinamento
Diciamo che sei con i file di testo e txt. Nonostante le diverse estensioni dei file, entrambi sono nello stesso formato. Invece di gestire sia il testo che il txt, possiamo rinominarli tutti in file txt.
$ 's/\.te?XT $/.txt/i '
Allo stesso modo, invece di affrontare sia JPEG che JPG, possiamo rinominarli tutti in JPG.
$ 's/\.jpe?G $/.jpg/i '
Si noti che in entrambi i casi, le estensioni dei file hanno somiglianze tranne un carattere. Ecco perché potremmo usare questo collegamento. Se le estensioni dei file sono completamente diverse, allora non funzionerà.
Conclusione
Il comando di rinominato è uno strumento semplice da padroneggiare. È davvero potente quando lavori con tonnellate di file e li rinomina in vari formati. È anche sicuro incorporare negli script bash per l'automazione. Se sei un principiante, ecco una meravigliosa guida iniziale su Bash Scripting.
Felice calcolo!