Come rinominare una directory in Linux

Come rinominare una directory in Linux

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

I tuoi dati sono al sicuro

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

Possiamo creare una directory e sbagliare il nome e vogliamo risolverlo. 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. Potresti aver decompresso un file di archivio e creato un albero di directory con i nomi delle directory in maiuscolo e desideri che siano in minuscolo.

Indipendentemente dalla causa. rinominare una directory non fa nulla con i dati che contiene. Cambia il percorso di quei dati, ma i file e le directory all’interno della directory rinominata non sono interessati.

Non rinominare le directory di sistema. La modifica del percorso dei file e dei comandi di sistema, per usare un eufemismo, influirà negativamente sul funzionamento del tuo computer. Se devi usare sudoper 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 è un mvcomando. È parte integrante di ogni distribuzione Linux, quindi non c’è nulla da installare.

Al mvmomento della stesura di questo articolo, la squadra ha più di 50 anni. Risale ai primi giorni di Unix, quando erano in voga comandi brevi e criptici, probabilmente per ridurre il numero di caratteri che dovevano viaggiare su lente linee seriali da telescriventi e terminali stupidi al computer reale.

In realtà significa “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, rinominerai il file. E possiamo fare lo stesso con le directory.

Questa directory ha due sottodirectory.

ls

Per rinominare una directory, utilizziamo il comando mv. È necessario specificare il nome della directory corrente 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-2ls

Utilizzando il browser di file

I browser di file possono rinominare le directory. La chiave nell’applicazione GNOME Files è F2. Selezionando una directory e premendo F2 si apre la finestra di dialogo Rinomina cartella.

Immettere un nuovo nome e fare clic sul pulsante verde Rinomina.

La directory è stata rinominata per te.

È così semplice.

Rinomina comando

Se le tue esigenze sono più complesse della semplice ridenominazione di una directory, potrebbe essere necessario utilizzare renameil comando. Ciò consente di utilizzare le espressioni Perl per rinominare file e directory. Fornisce un modo più potente e flessibile per rinominare le directory.

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

Per evitare conflitti di denominazione con un comando esistente rename, il comando Perl renameviene invocato prenamein Fedora e perl-renameManjaro. In Ubuntu, entrambi i comandi renamee prenamesono collegamenti simbolici che si risolvono in un file binario chiamato file-rename.

Quindi, in Manjaro dovrai usare il comando perl-renamee in Fedora dovrai usare prename. Su Ubuntu puoi usare renameentrambi prename.

Per installare Perl rename, su Ubuntu devi digitare:

sudo apt install rename

In 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 la ridenominazione

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

Il nostro catalogo ha una collezione di altri cataloghi.

ls

I loro nomi sono un mix di lettere minuscole, maiuscole e miste. Possiamo convertirli tutti in minuscolo con un’espressione adatta.

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

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

Tutta la magia è nell’espressione. L’espressione è racchiusa tra virgolette singole ” '“. Questo è ciò che significa tutta la squadra.

  • y: Ciò significa cercare qualsiasi carattere nel primo intervallo di caratteri e sostituirlo con il carattere corrispondente nel 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”.
  • *: Un carattere jolly asterisco significa che si applica a tutte le directory.

In altre parole, il comando recita “per tutte le directory, sostituisci le lettere maiuscole con le lettere minuscole equivalenti”.

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

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

La “S” in questa espressione sta per sostituzione. Controlla ogni directory per vedere se il suo nome è “gamma”. In tal caso, lo sostituisce con “epsilon-2”. Tieni presente, tuttavia, che questo corrisponderebbe anche a una directory chiamata “gamma-zeta”, ad esempio rinominandola “epsilon-2-zeta”.

Questo può essere evitato aggiungendo i metacaratteri di inizio riga ” ^” e fine riga ” $” alla prima clausola dell’espressione.

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

Questo lascia la directory “epsilon-2” intatta.

Usando rinomina con altri comandi

Possiamo usare altri comandi per trovare le directory renamesu cui vogliamo lavorare. Se abbiamo un set di directory nidificate e vogliamo rinominare tutto ciò che termina con “-old” per terminare con “-archive”, possiamo ottenerlo usando finde xargs.

Dobbiamo usarlo xargsperché renamenon accetta l’input convogliato. Il comando xargsrisolve questo problema prendendo l’input tramite pipe e aggiungendo un altro comando alla riga di comando come parametro della riga di comando.

La nostra squadra si presenta così:

find. -depth -type d -name "*-old"| xargs -r rename "s/old$/archive/"

  • .: Diciamo a find di iniziare la ricerca nella directory corrente. Certo, può essere in entrambi i modi.
  • -depth: usa la 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”: Suggerimento per la ricerca. Stiamo cercando directory con nomi che terminano con “-old”.
  • |: Convogliamo l’output del comando find nel xargscomando.
  • xargs -r: -r(non eseguire se vuoto) significa non eseguire il comando se non ci sono directory adatte.
  • rinomina “s/old$/archive/”: renamecomando da eseguire.

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

Eseguiamo il nostro comando:

E possiamo vedere che tutte le directory rilevanti, comprese le sottodirectory, sono state rinominate.

Non hai bisogno di nient’altro che mv. Se preferisci le applicazioni GUI, puoi utilizzare il browser dei file. Se devi rinominare molte directory, specialmente se sono sparse nell’albero delle directory, avrai bisogno di flessibilità rename.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *