Come rinominare una directory su Linux

Pubblicato: 2022-06-16
Laptop Linux che mostra un prompt bash
fatmawati achmad zaenuri/Shutterstock.com

Rinominare una directory in Linux è facile e ci sono molti modi per farlo. Dalla ridenominazione di una singola directory alla ricerca e alla ridenominazione di molte directory, ecco come farlo.

I tuoi dati sono al sicuro

Rinominare le directory è qualcosa che tutti dobbiamo fare di tanto in tanto.

Potremmo creare una directory e scrivere in modo errato il suo nome e vogliamo metterlo a posto. Spesso, lo scopo di una directory cambia nel tempo o nel corso della vita di un progetto e si desidera modificare il nome per riflettere il suo nuovo utilizzo. Forse hai decompresso un file di archivio e ha creato un albero di directory con i nomi delle directory in maiuscolo e li vorresti in minuscolo.

Cosa sono i file e le cartelle del computer?
CORRELATI Cosa sono i file e le cartelle del computer?

Qualsiasi sia la ragione. rinominare una directory non ha alcun effetto sui dati in essa contenuti. Cambia il percorso di quei dati, ma i file e le directory all'interno della directory rinominata non vengono toccati.

Non rinominare le directory di sistema. La modifica del percorso dei file e dei comandi di sistema avrà un effetto dannoso sul funzionamento del tuo computer, per non dire altro. Se devi usare sudo per rinominare una directory, a meno che tu non sappia davvero cosa stai facendo, è probabile che non dovresti rinominarla.

Usando il comando mv

Nei casi più semplici, tutto ciò di cui abbiamo veramente bisogno è il comando mv . Questa è parte integrante di ogni distribuzione Linux, quindi non c'è nulla da installare.

Annuncio

Il comando mv più di 50 anni al momento della scrittura. Risale agli albori di Unix, quando erano in voga comandi brevi e criptici, probabilmente per ridurre il numero di caratteri che dovevano passare lungo linee seriali lente da telescriventi e terminali stupidi al computer vero e proprio.

In realtà sta per "sposta" e può essere utilizzato per spostare i file da una directory all'altra. Se sposti un file nella stessa posizione in cui si trova già e gli dai un nuovo nome, hai rinominato il file. E possiamo fare lo stesso con le directory.

Ci sono due sottodirectory in questa directory.

 ls 

Elenco di due sottodirectory

Per rinominare una directory utilizziamo il comando mv. Dobbiamo fornire il nome corrente della directory e il nuovo nome.

 mv old-work archive-2 

Rinominare una directory con mv

Se la directory che desideri rinominare non è nella directory corrente, fornisci il percorso e il nome della directory.

 mv ~/htg/old-work ~/htg/archive-2
 ls 

Rinominare una directory in una directory diversa con mv specificando il percorso sulla riga di comando

Utilizzo del browser di file

I browser di file sono in grado di rinominare le directory. La sequenza di tasti nell'applicazione GNOME Files è F2. Evidenziando una directory e toccando il tasto F2 si apre la finestra di dialogo "Rinomina cartella".

Utilizzo del browser fie per rinominare una directory

Annuncio

Digita il nuovo nome e fai clic sul pulsante verde "Rinomina".

Fornire il nuovo nome della directory nel browser dei file

La directory viene rinominata per te.

La directory rinominata nella finestra del browser dei file

E 'così semplice.

Il comando rinomina

Se le tue esigenze sono più complicate della semplice ridenominazione di una directory, potresti dover utilizzare il comando rename . Ciò consente di utilizzare le espressioni Perl per rinominare file e directory. Fornisce un modo del tutto più potente e flessibile per rinominare le directory.

Parleremo del comando rename basato su Perl. C'è un altro comando più vecchio chiamato rename che fa parte delle utilità di base di Linux. Probabilmente dovrai installare il comando Perl rename che vogliamo usare.

Per evitare conflitti di nome con il comando rename esistente, il comando Perl rename è chiamato prename su Fedora e perl-rename su Manjaro. Su Ubuntu, i comandi rename e prename sono entrambi collegamenti simbolici che si risolvono in un file binario chiamato file-rename .

Quindi, su Manjaro il comando dovrai usare perl-rename , e su Fedora è prename . Su Ubuntu, puoi usare rename o prename .

Per installare Perl rename, su Ubuntu devi digitare:

 sudo apt install rinomina 

Installazione di rinomina su Ubuntu

Su Fedora, il comando è:

 sudo dnf install prename 

Installazione di prename su Fedora

Su Manjaro il pacchetto si chiama perl-rename .

 sudo pacman -Sy perl-rename 

Installazione di perl-rename su Manjaro

Annuncio

Assicurati di utilizzare il comando appropriato per la tua distribuzione se vuoi lavorare con gli esempi.

Primi passi con rinominare

Il comando rename prende le espressioni regolari Perl e le applica a un file oa una directory, oa un gruppo di file o directory.

Nella nostra directory, abbiamo una raccolta di altre directory.

 ls 

Una raccolta di directory in un misto di maiuscolo, minuscolo e misto

I loro nomi sono un misto di minuscolo, maiuscolo e misto. Possiamo convertirli tutti in minuscolo con un'espressione adatta.

 rinomina 'y/AZ/az/' *
 ls 

Conversione di directory in nomi minuscoli

Tutte le directory sono ora in minuscolo, indipendentemente dal fatto che in precedenza fossero completamente maiuscole o contenessero una lettera maiuscola dispari.

Tutta la magia è contenuta nell'espressione. L'espressione è racchiusa tra virgolette singole “ ' “. Questo è il significato dell'intero comando.

  • y : significa cercare qualsiasi carattere nel primo intervallo di caratteri e sostituirlo con il carattere corrispondente del secondo intervallo di caratteri.
  • /AZ/az/ : il primo intervallo è composto da tutte le lettere da "A" a "Z" e il secondo intervallo è composto da tutti i caratteri da "a" a "z".
  • * : Il carattere jolly asterisco significa applicarlo a tutte le directory.
Annuncio

In altre parole, il comando si legge come "per tutte le directory, scambia le lettere maiuscole con la lettera minuscola equivalente".

Ovviamente, puoi rinominare una singola directory con rename , anche se sembra esagerato. Sarai più veloce usando mv .

 rinomina 's/gamma/epsilon-2/' *
 ls 

rinominare una singola directory con rename

La "s" in questa espressione significa sostituto. Controlla ogni directory per vedere se il suo nome è "gamma". Se lo è, lo sostituisce con "epsilon-2". Tieni presente, tuttavia, che questo avrebbe anche abbinato una directory chiamata "gamma-zeta", ad esempio rinominandola in "epsilon-2-zeta".

Possiamo evitarlo aggiungendo i metacaratteri di inizio stringa " ^ " e fine stringa " $ " alla prima clausola dell'espressione.

 ls
 rinomina 's/^gamma$/epsilon-2/' *
 ls 

Limitazione di un'azione di ridenominazione solo ai nomi di intere directory

Questo lascia la directory "epsilon-2" intatta.

Usando la ridenominazione con altri comandi

Possiamo usare altri comandi per individuare le directory su cui vogliamo rename . Se abbiamo un set di directory nidificate e vogliamo rinominare quelle che terminano con "-old" in modo che terminino con "-archive", possiamo ottenerlo usando find e xargs .

Come utilizzare il comando xargs su Linux
CORRELATI Come utilizzare il comando xargs su Linux

Abbiamo bisogno di usare xargs perché rename non accetta l'input tramite pipe. Il comando xargs risolve questo problema accettando l'input tramite pipe e aggiungendo alla riga di comando un altro comando come parametro della riga di comando.

Il nostro comando si presenta così:

 trova . -profondità -tipo d -nome "*-vecchio" | xargs -r rinomina "s/old$/archive/"
  • . : Diciamo a find di iniziare la ricerca nella directory corrente. Questo potrebbe essere qualsiasi percorso, ovviamente.
  • -depth : usa una ricerca in profondità. Ciò significa che i contenuti delle sottodirectory nidificate più profonde vengono elaborati prima di quelli superiori.
  • -type d : cerca le directory, non i file.
  • -name “*-old” : L'indizio di ricerca. Stiamo cercando directory con nomi che terminano con "-old".
  • | : Stiamo reindirizzando l'output da find al comando xargs .
  • xargs -r : Il -r (no run se vuoto) significa non eseguire il comando se non ci sono directory corrispondenti.
  • rename “s/old$/archive/” : il comando di rename da eseguire.

Il nostro albero di directory è simile a questo prima del comando.

L'albero delle directory prima del nostro comando di ridenominazione

Eseguiamo il nostro comando:

Il nostro comando di ridenominazione usando trova, xargs e rinomina

Annuncio

E possiamo vedere che tutte le directory corrispondenti, comprese quelle nidificate, sono state rinominate.

L'albero delle directory dopo il comando di ridenominazione

Cavalli per Corsi

Rinominare una directory non ha bisogno di nient'altro che mv . Se preferisci le applicazioni GUI, puoi utilizzare il tuo browser di file. Se hai molte directory da rinominare, e soprattutto se sono sparse in un albero di directory, avrai bisogno della flessibilità di rename .

CORRELATI: Come gestire i file dal terminale Linux: 11 comandi che devi conoscere