GNU/Linux >> Linux Esercitazione >  >> Linux

Come rinominare file e directory in Linux

La ridenominazione dei file è una delle attività più basilari che spesso è necessario eseguire su un sistema Linux. Puoi rinominare i file utilizzando un file manager della GUI o tramite il terminale della riga di comando.

Rinominare un singolo file è facile, ma rinominare più file contemporaneamente può essere una sfida, soprattutto per gli utenti che non conoscono Linux.

In questo tutorial, ti mostreremo come utilizzare il mv e rename comandi per rinominare file e directory.

Rinominare i file con mv Comando #

Il mv command(short of move) viene utilizzato per rinominare o spostare i file da una posizione all'altra. La sintassi per mv il comando è il seguente:

mv [OPTIONS] source destination

Il source può essere uno o più file, oppure directory e destination può essere un singolo file o directory.

  • Se specifichi più file come source , la destination deve essere una directory. In questo caso, il source i file vengono spostati nella directory di destinazione.
  • Se specifichi un singolo file come source e la destination target è una directory esistente, quindi il file viene spostato nella directory specificata.
  • Per rinominare un file, devi specificare un singolo file come source e un singolo file come destination obiettivo.

Ad esempio, per rinominare il file file1.txt come file2.txt correresti:

mv file1.txt file2.txt

Rinominare più file con mv Comando #

Il mv comando può rinominare un solo file alla volta, ma può essere utilizzato insieme ad altri comandi come find o dentro bash for o while loop per rinominare più file.

L'esempio seguente mostra come utilizzare il ciclo Bash for per rinominare tutti i .html file nella directory corrente modificando il .html estensione a .php .

for f in *.html; do
    mv -- "$f" "${f%.html}.php"
done

Analizziamo il codice riga per riga:

  • La prima riga crea un for scorre e scorre un elenco di tutti i file che confinano con .html .
  • La seconda riga si applica a ciascun elemento dell'elenco e sposta il file in uno nuovo sostituendo .html con .php . La parte ${file%.html} sta usando l'espansione del parametro della shell per rimuovere il .html parte dal nome del file.
  • done indica la fine del segmento del ciclo.

Ecco un esempio usando mv in combinazione con find per ottenere lo stesso risultato di cui sopra:

find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;

Il find il comando sta passando tutti i file che terminano con .html nella directory corrente in mv uno per uno usando il -exec opzione. La stringa {} è il nome del file attualmente in elaborazione.

Come puoi vedere dagli esempi sopra, rinominare più file usando mv comando non è un compito facile in quanto richiede una buona conoscenza degli script Bash.

Rinominare i file con rename Comando #

Il rename comando viene utilizzato per rinominare più file. Questo comando è più avanzato di mv poiché richiede una conoscenza di base delle espressioni regolari.

Esistono due versioni di rename comando con sintassi diversa. In questo tutorial, useremo la versione Perl di rename comando. Se questa versione non è installata sul tuo sistema, puoi installarla facilmente utilizzando il gestore di pacchetti della tua distribuzione.

  • Installa rename su Ubuntu e Debian

    sudo apt install rename
  • Installa rename su CentOS e Fedora

    sudo yum install prename
  • Installa rename su Arch Linux

    yay perl-rename ## or yaourt -S perl-rename

La sintassi per rename il comando è il seguente:

rename [OPTIONS] perlexpr files

Il rename comando rinominerà i files secondo il perlexpr specificato espressione regolare. Puoi leggere di più sulle espressioni regolari perl qui.

L'esempio seguente cambierà tutti i file con estensione .html a .php :

rename 's/.html/.php/' \*.html

Puoi usare il -n opzione per stampare i nomi dei file da rinominare, senza rinominarli.

rename -n 's/.html/.php/' \*.html

L'output sarà simile a questo:

rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)

Per impostazione predefinita, il rename comando non sovrascrive i file esistenti. Passa il -f opzione per consentire la sovrascrittura dei file esistenti:

rename -f 's/.html/.php/' \*.html

Di seguito sono riportati alcuni esempi più comuni di come utilizzare rename comando:

  • Sostituisci gli spazi nei nomi dei file con i trattini bassi

    rename 'y/ /\_/' \*
  • Converti i nomi dei file in minuscolo

    rename 'y/A-Z/a-z/' \*
  • Converti i nomi dei file in maiuscolo

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

Conclusione #

Ti abbiamo mostrato come utilizzare il mv e rename comandi per rinominare i file.

Ci sono anche altri comandi per rinominare i file in Linux, come mmv . I nuovi utenti Linux che sono intimiditi dalla riga di comando possono utilizzare strumenti di ridenominazione batch della GUI come Métamorphose.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Come rinominare i file in Linux

  2. Come archiviare file e directory in Linux [Parte 2]

  3. Come archiviare file e directory in Linux [Parte 1]

  4. Come rinominare una directory su Linux

  5. Linux Elimina file e directory

Come rinominare uno o più file in Linux

Come eseguire il backup di file e directory utilizzando Rsync in Linux

Come rinominare file e directory in Ubuntu 20.04

Come rinominare file e directory in Linux

Come copiare file e directory nel terminale Linux

Come eliminare file e directory utilizzando la riga di comando di Linux