Home
» LINUX
»
Come usare Bash per creare directory in Linux con mkdir
Come usare Bash per creare directory in Linux con mkdir
Per creare una directory da Bash su Linux, usa il mkdircomando seguito dal nome della directory. Ad esempio, mkdir projectscrea una cartella chiamata projectsall'interno della directory di lavoro corrente. Non è necessario un file manager separato o un pacchetto aggiuntivo per la normale creazione di directory.
A rigor di termini, mkdirnon è un comando integrato di Bash. Bash esegue l'utilità di creazione directory installata sul sistema; nelle tipiche distribuzioni GNU/Linux, tale utilità proviene da GNU Coreutils. La documentazione attuale di GNU Coreutils relativa a mkdir descrive la sintassi standard e le opzioni utili come -p, -m, e -v.
Crea una directory con mkdir
Apri un terminale e, se necessario, usa il comando pwdper verificare la tua posizione attuale. Quindi esegui:
mkdir projects
Se il comando ha esito positivo, normalmente non viene visualizzato nulla. Conferma la nuova directory con:
ls
Creazione di una directory nella posizione corrente con mkdir.
È possibile specificare anche mkdirun percorso. In Bash, un carattere senza virgolette ~si espande nella directory home, quindi questo crea archivesla cartella nella tua home:
mkdir ~/archives
Il manuale di Bash sull'espansione della tilde spiega come ~viene espansa. Se la directory padre non esiste, l'operazione mkdirfallisce; utilizzare -pper percorsi annidati.
Crea directory annidate con mkdir -p
L' opzione -p"or" --parentscrea le directory padre mancanti secondo necessità. Questa è la scelta più comoda quando si crea una struttura di directory più profonda:
mkdir -p ~/work/client/site/assets
Se work, client, o sitenon esiste ancora, mkdir -plo crea. Inoltre, non segnala un errore solo perché un componente del percorso esistente è già una directory.
mkdir -pCrea le directory padre mancanti con un solo comando.
Per gli script, puoi aggiungere -vquando desideri una conferma visibile di ciò che è stato creato:
mkdir -pv ~/work/client/site/assets
Crea più directory contemporaneamente
mkdiraccetta più di un nome di directory, quindi è possibile creare più cartelle con un singolo comando:
mkdir docs images backups
Poiché questa guida utilizza Bash, è possibile utilizzare anche l'espansione delle parentesi graffe quando più nomi di directory condividono lo stesso percorso:
mkdir -p project/{src,tests,docs}
Bash espande quell'espressione prima di eseguirla mkdir, producendo project/src, project/testse project/docs. GNU Bash documenta questo comportamento nel suo riferimento all'espansione delle parentesi graffe . L'espansione delle parentesi graffe è una funzionalità di Bash, quindi non dare per scontato che uno script eseguito da un sistema strettamente POSIX shla interpreti allo stesso modo.
L'espansione delle parentesi graffe Bash è un modo compatto per creare diverse directory correlate.
Nomi di directory con spazi e permessi personalizzati
Se il nome di una directory contiene spazi, racchiudere tra virgolette l'intero nome quando è relativo alla directory corrente:
mkdir "Project Files"
Per un percorso all'interno della tua directory home, usare $HOMEle virgolette doppie all'interno è più sicuro che racchiudere tra virgolette una tilde letterale:
mkdir "$HOME/Project Files"
Non scrivere mkdir "~/Project Files"e aspettarti ~che si espanda; racchiudere la tilde tra virgolette impedisce la normale espansione della tilde.
GNU mkdirsupporta anche -ml'impostazione della modalità di autorizzazione della nuova directory. Ad esempio:
mkdir -m 750 private
Ciò richiede i permessi di lettura, scrittura ed esecuzione per il proprietario, lettura ed esecuzione per il gruppo e nessun permesso per gli altri. Verifica il risultato con:
ls -ld private
Le virgolette proteggono i nomi che contengono spazi, mentre -mimpostano la modalità di autorizzazione della directory richiesta.
Errori comuni di mkdir
Il file esiste già: il nome di destinazione esiste già. Se si tratta di una directory esistente in un percorso annidato, mkdir -ppotrebbe essere appropriato.
File o directory non esistente: manca un percorso padre. Utilizzare questa opzione mkdir -p path/to/new/folderquando si desidera creare automaticamente i percorsi padre mancanti.
Autorizzazione negata: il tuo account non può scrivere in quella posizione. Crea la directory in una posizione di tua proprietà oppure utilizza i privilegi di amministratore solo quando la posizione di sistema li richiede effettivamente.
Gli spazi dividono il nome: racchiudete il percorso tra virgolette, ad esempio mkdir "$HOME/My Projects".
Rimuovi una directory che hai creato
Per una directory vuotarmdir , utilizzare :
rmdir projects
La documentazione di GNU Coreutils relativa al comando rmdir conferma che questo rmdircomando rimuove le directory vuote. Se una directory contiene file, rmdiril comando si rifiuta di rimuoverla. La cancellazione ricorsiva con il comando rm -rè disponibile per le directory non vuote, ma è necessario verificare attentamente il percorso prima di procedere, poiché rimuove sia la directory che il suo contenuto.
Riferimento rapido ai comandi
mkdir name— crea una directory nella posizione corrente.
mkdir ~/name— crea una directory nella tua directory home.
mkdir -p a/b/c— crea una struttura di directory annidata e include i genitori mancanti.
mkdir one two three— creare più directory contemporaneamente.
mkdir -p project/{src,tests,docs}— utilizzare l'espansione delle parentesi graffe di Bash per le cartelle correlate.
mkdir "$HOME/Project Files"— crea in modo sicuro un percorso della directory home contenente spazi.
mkdir -m 750 private— crea una directory con una modalità di autorizzazione specificata.
mkdir --helpoppure man mkdir— visualizza la guida del comando locale.