Come rinominare una directory su Linux
Pubblicato: 2022-06-16Rinominare 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.
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.
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
Per rinominare una directory utilizziamo il comando mv. Dobbiamo fornire il nome corrente della directory e il nuovo nome.
mv old-work archive-2
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
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".
Digita il nuovo nome e fai clic sul pulsante verde "Rinomina".
La directory viene rinominata per te.
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
Su Fedora, il comando è:
sudo dnf install prename
Su Manjaro il pacchetto si chiama perl-rename
.
sudo pacman -Sy perl-rename
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
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
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.
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
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
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
.
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.
Eseguiamo il nostro comando:
E possiamo vedere che tutte le directory corrispondenti, comprese quelle nidificate, sono state rinominate.
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