androide

Come rinominare file e directory in Linux

spostare e rinominare file con il terminale unix

spostare e rinominare file con il terminale unix

Sommario:

Anonim

La ridenominazione di file e directory è una delle attività di base che spesso è necessario eseguire su un sistema Linux.

Rinominare un singolo file è facile, ma rinominare più file contemporaneamente può essere una sfida, specialmente per gli utenti che non conoscono Linux. È possibile rinominare i file utilizzando un file manager della GUI o tramite il terminale della riga di comando.

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

Rinominare i file con il comando mv

Il comando mv (abbreviato da move) viene utilizzato per rinominare o spostare i file da una posizione a un'altra. La sintassi per il comando mv è la seguente:

mv source destination

La source può essere uno o più file o directory e la destination può essere un singolo file o directory.

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

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

mv file1.txt file2.txt

Rinominare più file con il comando mv

Il comando mv può rinominare solo un file alla volta, ma può essere usato insieme ad altri comandi come find o inside bash per o mentre i loop per rinominare più file.

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

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

Analizziamo il codice riga per riga:

  • La prima riga crea un ciclo for e scorre un elenco di tutti i file che bordano 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 shell per rimuovere la parte .html dal nomefile.done indica la fine del segmento del ciclo.

Possiamo anche usare il comando mv in combinazione con find per ottenere lo stesso di cui sopra.

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

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

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

Rinominare i file con il comando Rinomina

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

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

  • Installa rinomina su Ubuntu e Debian

    sudo apt install rename

    Installa rinomina su CentOS e Fedora

    sudo yum install prename

    Installa rinomina su Arch Linux

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

La sintassi per il comando rename è la seguente:

rename perlexpr files

Il comando rename rinominerà tutti i files base perlexpr regolare perlexpr specificata. È possibile informazioni sulle espressioni regolari perl qui.

Ad esempio, il comando seguente cambierà tutti i file con estensione .html in .php :

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

È possibile utilizzare l'argomento -n per stampare i nomi dei file da rinominare, senza rinominarli.

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

L'output sarà simile al seguente:

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 comando rename non sovrascriverà i file esistenti. Passare l'argomento -f per consentire la -f dei file esistenti.

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

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

  • Sostituisci gli spazi nei nomi dei file con caratteri di sottolineatura

    rename 'y/ /_/' *

    Converti i nomi di file in minuscolo

    rename 'y/AZ/az/' *

    Converti i nomi dei file in maiuscolo

    rename 'y/az/AZ/' *

Conclusione

Ormai dovresti avere una buona conoscenza di come usare i comandi mv e rename per rinominare i file. Naturalmente, ci sono 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 rinomina batch GUI come Métamorphose.

rinominare terminale mv