Skip to main content

Come creare le directory in Linux con il comando 'mkdir'

Linux Command Line Tutorial | Learn the Bash Command Line | Linux Terminal Tutorial (Giugno 2025)

Linux Command Line Tutorial | Learn the Bash Command Line | Linux Terminal Tutorial (Giugno 2025)
Anonim

Questa guida ti mostrerà come creare nuove cartelle o directory all'interno di Linux usando la riga di comando.

Il comando che usi per creare le directory è mkdir. Questo articolo mostra il modo basilare per creare directory in Linux e coprire tutte le opzioni disponibili.

Come creare una nuova directory

Il modo più semplice per creare una nuova directory è il seguente:

mkdir

Ad esempio, se vuoi creare una directory sotto la tua cartella home chiamata test, apri una finestra di terminale e assicurati di essere nella tua cartella home (usa il comando cd ~).

test di mkdir

Modifica delle autorizzazioni della nuova directory

Dopo aver creato una nuova cartella, potresti voler impostare le autorizzazioni in modo che solo un determinato utente possa accedere alla cartella o in modo che alcune persone possano modificare i file nella cartella ma altri abbiano solo la lettura.

Nell'ultima sezione, ti ho mostrato come creare una directory chiamata test. L'esecuzione del comando ls ti mostrerà le autorizzazioni per quella directory:

ls -lt

È probabile che avrai qualcosa in questo senso:

drwxr-xr-x 2 gruppo proprietario 4096 mar 9 19:34 test

I pezzi che ci interessano sonoproprietario drwxr-xr-xe gruppo

Il d ci dice che test è una directory.

I primi tre caratteri dopo d sono le autorizzazioni del proprietario per la directory specificata dal nome del proprietario:

  • r sta per leggere
  • w sta per scrivere
  • x sta per execute (che in questo caso significa che puoi accedere alla cartella)

I seguenti tre caratteri sono le autorizzazioni di gruppo per il file specificato dal nome del gruppo. Di nuovo le opzioni sono r, w e x. Il - significa che manca un permesso. Nell'esempio sopra, chiunque appartenga al gruppo può accedere alla cartella e leggere i file, ma non può scrivere nella cartella.

Gli ultimi tre caratteri sono le autorizzazioni che tutti gli utenti hanno e, come puoi vedere nell'esempio sopra, sono le stesse delle autorizzazioni di gruppo.

Per modificare le autorizzazioni per un file o una cartella puoi usare ilchmodcomando. Il comando chmod ti consente di specificare 3 numeri che impostano le autorizzazioni:

  • autorizzazioni di lettura = 4
  • permessi di scrittura = 2
  • eseguire le autorizzazioni = 1

Per ottenere una miscela di permessi, aggiungi i numeri insieme. Ad esempio, per ottenere autorizzazioni di lettura ed esecuzione, il numero necessario è 5, per ottenere le autorizzazioni di lettura e scrittura il numero è 6 e per ottenere autorizzazioni di scrittura ed esecuzione il numero è 3.

Ricorda che devi specificare 3 numeri come parte del comando chmod. Il primo numero è per le autorizzazioni del proprietario, il secondo numero è per le autorizzazioni del gruppo e l'ultimo numero è per tutti gli altri.

Ad esempio, per ottenere autorizzazioni complete sul proprietario, leggere ed eseguire le autorizzazioni sul gruppo e nessuna autorizzazione per chiunque altro digitare quanto segue:

chmod 750 test

Se si desidera modificare il nome del gruppo proprietario di una cartella, utilizzare il comando chgrp.

Ad esempio, immagina di voler creare una directory a cui possano accedere tutti i contabili della tua azienda.

Prima di tutto, crea gli account di gruppo digitando quanto segue:

account groupadd

Se non si dispone dell'autorizzazione corretta per creare un gruppo, potrebbe essere necessario utilizzare sudo per ottenere privilegi aggiuntivi o passare a un account con autorizzazioni valide utilizzando il comando su.

Ora puoi cambiare il gruppo per una cartella digitando quanto segue:

account chgrp

Per esempio:

test dell'account chgrp

Per consentire a chiunque nel gruppo di account di leggere, scrivere ed eseguire l'accesso e il proprietario, ma di sola lettura per tutti gli altri, è possibile utilizzare il seguente comando:

chmod 770 test

Per aggiungere un utente al gruppo di account, probabilmente vorrai usare il seguente comando:

usermod -a -G account

Il comando precedente aggiunge il gruppo di account all'elenco dei gruppi secondari a cui l'utente ha accesso.

Come creare una directory e impostare le autorizzazioni contemporaneamente

È possibile creare una directory e impostare le autorizzazioni per quella directory allo stesso tempo usando il seguente comando:

mkdir -m777

Il comando precedente creerà una cartella a cui tutti hanno accesso. È molto raro che tu voglia creare qualcosa con questo tipo di permessi.

Crea una cartella e tutti i genitori che sono richiesti

Immagina di voler creare una struttura di directory, ma non vuoi creare ogni singola cartella con il modo e procedere lungo un albero.

Ad esempio, potresti creare cartelle per la tua musica come segue:

  • / Home / music / rock / Alice Cooper
  • / Home / music / rock / regina
  • / Home / musica / rap / drdre
  • / Home / music / jazz / louisjordan

Sarebbe fastidioso dover creare la cartella rock, quindi la cartella cooper e queen di alice e quindi creare la cartella rap e la cartella dr dre e quindi la cartella jazz e quindi la cartella louisjordan.

Specificando la seguente opzione puoi creare tutte le cartelle genitore al volo se non esistono già.

mkdir -p

Ad esempio, per creare una delle cartelle elencate sopra prova il seguente comando:

mkdir -p ~ / music / rock / alicecooper

Ottenere la conferma che è stata creata una directory

Per impostazione predefinita, il comando mkdir non ti dice se la directory che stai creando è stata creata correttamente. Se non ci sono errori, puoi supporre che lo abbia.

Se si desidera ottenere un output più dettagliato in modo da sapere cosa è stato creato, utilizzare la seguente opzione.

mkdir -v

L'output sarà lungo le linee dimkdir: creato directory / percorso / to / directoryname.

Utilizzo di "mkdir" in uno script di shell

A volte vorrete usare il comando "mkdir" come parte di uno script di shell. Ad esempio, esaminiamo uno script che accetta un percorso. Quando lo script viene eseguito, crea la cartella e aggiunge un singolo file di testo chiamato "ciao".

#! / bin / bash mkdir $ @ cd $ @ touch ciao

La prima riga deve essere inclusa in ogni script che scrivi e viene utilizzata per mostrare che si tratta effettivamente di uno script BASH.

Il comando "mkdir" è usato per creare una cartella. Il "$ @" (noto anche come parametri di input) alla fine della 2a e 3a riga viene sostituito con il valore specificato durante l'esecuzione dello script.

Il comando "cd" cambia nella directory specificata e infine il comando touch crea un file vuoto chiamato "ciao".

Puoi provare lo script per te stesso. Per fare ciò, segui queste istruzioni:

  1. Apri una finestra di terminale (premi Alt e T dovrebbe farlo)
  2. accedere nano createhellodirectory.sh
  3. Digita i comandi sopra nell'editor
  4. Salva il file premendo CTRL e O allo stesso tempo
  5. Esci dal file premendo CTRL e X contemporaneamente
  6. Modificare le autorizzazioni digitando chmod + x createhellodirectory.sh
  7. Esegui lo script digitando ./createhellodirectory.sh test

Quando si esegue lo script, verrà creata una directory denominata "test" e se si passa a tale directory (test del cd) ed eseguire un elenco di directory (ls) vedrai un singolo file chiamato "ciao".

Fin qui tutto bene, ma ora prova di nuovo ad eseguire il passaggio 7.

  1. Apparirà un errore che afferma che la cartella esiste già.

Ci sono varie cose che possiamo fare per migliorare lo script. Ad esempio, se la cartella esiste già non ci interessa particolarmente finché esiste.

#! / bin / bash mkdir -p $ @ cd $ @ touch ciao

Se si specifica -p come parte del comando mkdir, allora non si verificherà un errore se la cartella esiste già ma se non esiste lo creerà.

Come succede il comando touch creerà un file se non esiste, ma se esiste, modifica semplicemente l'ultima data e ora di accesso.

Immagina che l'istruzione touch sia stata sostituita con un'eco che scrive il testo in un file come segue:

#! / bin / bash mkdir -p $ @ cd $ @ echo "ciao" >> ciao

Se esegui il comando "./createhellodirectory.sh test" ancora e ancora l'effetto sarà che il file chiamato "ciao" nella directory di test diventerà sempre più grande con sempre più linee con la parola "ciao" al suo interno.

Ora, questo può o non può essere come previsto ma diciamo per ora che questa non è l'azione desiderata. È possibile scrivere un test per assicurarsi che la directory non esista prima di eseguire il comando echo come segue.

#! / bin / bash mkdir $ @ 2> / dev / null; se $? -eq 0; quindi cd $ @ echo "ciao" >> ciao exit fi

Lo script sopra è il mio metodo preferito per la gestione della creazione di cartelle. Il comando mkdir crea la cartella che viene passata come parametro di input ma qualsiasi output di errore viene inviato a / dev / null (che in sostanza significa da nessuna parte).

La terza riga controlla lo stato dell'output del comando precedente che è l'istruzione "mkdir" e se ha successo, eseguirà le istruzioni fino a quando non verrà raggiunta l'istruzione "fi".

Ciò significa che puoi creare la cartella ed eseguire tutte le cose che vuoi se il comando ha successo. Se vuoi fare qualcos'altro se il comando non ha successo, puoi semplicemente inserire un'altra istruzione come segue:

#! / bin / bash mkdir $ @ 2> / dev / null; se $? -eq 0; thencd $ @ echo "ciao" >> helloexitelsecd $ @ echo "ciao"> helloexitfi

Nello script precedente se l'istruzione mkdir funziona, allora l'istruzione echo invia la parola "ciao" alla fine del file chiamato "ciao", mentre se non esiste un nuovo file verrà creato chiamato "ciao" con la parola " ciao "dentro

Questo esempio non è particolarmente pratico perché potresti ottenere gli stessi risultati semplicemente eseguendo sempre il echo "ciao"> ciao linea. Il punto dell'esempio è mostrare che è possibile eseguire il comando "mkdir", nascondere l'output dell'errore, controllare lo stato del comando per vedere se ha avuto successo o meno e quindi eseguire un set di comandi se il comando "mkdir" ha avuto successo e un altro insieme di comandi se non lo fosse.