androide

Rinomina comando in linux (rinomina più file)

spostare e rinominare file con il terminale unix

spostare e rinominare file con il terminale unix

Sommario:

Anonim

Rinominare più file e directory con il comando mv può essere un processo noioso in quanto comporta la scrittura di comandi complessi con pipe, loop e così via.

Qui è dove il comando rename è utile. Rinomina i file dati sostituendo l'espressione di ricerca nel loro nome con la sostituzione specificata.

In questo tutorial, spiegheremo come utilizzare il comando rename per rinominare in batch i file.

Installazione di rename

Esistono due versioni del comando rename con sintassi e funzionalità diverse. Useremo la versione Perl del comando rename .

Se questa versione non è installata sul tuo sistema, usa il gestore pacchetti della tua distribuzione Linux per installarla:

  • Ubuntu e Debian

    sudo apt update sudo apt install rename

    CentOS e Fedora

    sudo yum install prename

    Arch Linux

    yay perl-rename

Utilizzando rename

Di seguito è riportata la sintassi generale per il comando rename :

rename perlexpr files

Il comando rename è sostanzialmente uno script Perl. perlexpr i files dati in base perlexpr regolare perlexpr specificata. Puoi leggere le espressioni regolari del Perl qui.

Ad esempio, il comando seguente cambierà l'estensione di tutti i file .css in .scss :

rename 's/.css/.scss/' *.css

Spieghiamo il comando in modo più dettagliato:

  • s/search_pattern/replacement/ - L'operatore di sostituzione. .css - Il modello di ricerca. È il primo argomento nell'operatore di sostituzione. Il comando rename cercherà questo modello nel nome file specificato e, se trovato, lo sostituirà con l'argomento di sostituzione. .scss - La sostituzione. Il secondo argomento nell'operatore di sostituzione. *.css - Tutti i file con estensione “.css”. Il carattere jolly ( * ) è un simbolo utilizzato per rappresentare zero, uno o più caratteri.

Prima di eseguire il comando effettivo e rinominare i file e le directory è sempre una buona idea utilizzare l'opzione -n che eseguirà un "ciclo di prova" e mostrerà quali file verranno rinominati:

rename -n 's/.css/.scss/' *.css

L'output sarà simile al seguente:

rename(file-0.css, file-0.scss) rename(file-1.css, file-1.scss) rename(file-2.css, file-2.scss) rename(file-3.css, file-3.scss) rename(file-4.css, file-4.scss)

Per impostazione predefinita, il comando rename non sovrascrive i file esistenti. Utilizzare l'opzione -f che indica a rename di sovrascrivere i file esistenti:

rename -f 's/.css/.scss/' *.css

rename -v 's/.css/.scss/' *.css

file-0.css renamed as file-0.scss file-1.css renamed as file-1.scss file-2.css renamed as file-2.scss file-3.css renamed as file-3.scss file-4.css renamed as file-4.scss

rinominare

rename 's/\.jpe?g$/.jpg/i' *

Conclusione

Il comando rename consente di rinominare più file contemporaneamente, usando le espressioni regolari Perl.

rinomina terminale