La commande mkdir
mkdir (make directories) permet de créer des répertoires. Ci-dessous nous abordons des exemples d’utilisation de la commande mkdir sous Linux.
Exemple de création d’un répertoire avec mkdir
Dans l’exemple suivant, nous créons avec la commande mkdir un nouveau répertoire appelé « nom_repertoire » au sein du répertoire courant (le répertoire courant étant celui dans lequel vous vous trouvez) :
1 2 3 | [romain@arch_machine ~]$ mkdir nom_repertoire [romain@arch_machine ~]$ ls nom_repertoire |
Par défaut la commande mkdir créer les répertoires avec les droits 0777 moins les bits positionnés dans umask.
Créer avec mkdir un répertoire possédant des droits particuliers
La commmande mkdir possède une option permettant de spécifier les droits attribués au répertoire lors de sa création. Cette option est invoqué soit par -m soit par --mode=MODE . MODE est un nombre représentatif des droits.
Dans l’exemple ci-dessous nous créons avec la commande mkdir un répertoire ayant les droits 700 :
1 2 3 4 | [romain@arch_machine nom_repertoire]$ mkdir -m 700 nom_repertoire [romain@arch_machine nom_repertoire]$ ls -l total 4 drwx------ 2 romain romain 4096 20 mars 20:48 nom_repertoire |
Créer les répertoires parents manquants avec mkdir
Il arrive parfois de vouloir créer plusieurs répertoires successifs (inclus les uns dans les autres); par exemple vouloir créer /repertoire1/repertoire2/. La commande mkdir permet justement de faire ce genre de choses grâce à l’option -p ou --parents.
Voici un exemple, ci-dessous, dans lequel nous créons les répertoires « repertoire_1 » et « repertoire_2 ».
1 2 3 4 5 6 7 8 9 | [romain@arch_machine nom_repertoire]$ mkdir repertoire_1/repertoire_2 [romain@arch_machine nom_repertoire]$ ls -R .: repertoire_1 ./repertoire_1: repertoire_2 ./repertoire_1/repertoire_2: |
Demander à mkdir d’afficher un message à chaque création de répertoire
La commande mkdir est capable d’afficher un message à chaque création de répertoire grâce à l’option --verbose (ou -v ).
Exemple d’utilisation de la commande mkdir avec l’option --verbose :
1 2 | [romain@arch_machine nom_repertoire]$ mkdir --verbose repertoire mkdir: création du répertoire 'repertoire' |
Dans l’exemple ci-dessous nous utilisons la commande mkdir avec l’option -v (équivalent à --verbose ) et -p ( --parents vu précédemment) :
1 2 3 4 | [romain@arch_machine nom_repertoire]$ mkdir -vp rep1/rep2/rep3 mkdir: création du répertoire 'rep1' mkdir: création du répertoire 'rep1/rep2' mkdir: création du répertoire 'rep1/rep2/rep3' |
Alias très intéressant concernant la commande mkdir
Il est très intéressant d’avoir les options --verbose et --parents activées par défaut sur la commande mkdir. Pour cela ajouter à votre fichier /etc/profile l’alias : alias mkdir='mkdir -pv'
La ligne de code suivante ajoute l’alias concernant la commande mkdir au fichier /etc/profile (attention, il est nécessaire d’être root) :
1 | [root@arch_machine ~]# echo alias mkdir='mkdir -pv' >> /etc/profile |
Grâce à cet alias, à chaque fois que vous utiliserez la commande mkdir, cette dernière indiquera que le répertoire à bien été crée et créera si nécessaire les répertoire parents manquants.
Ci-dessous, voici un exemple qui montre que lors de l’utilisation de la commande mkdir, les options --parents et --verbose sont activées grâce à l’alias :
1 2 3 | [romain@arch_machine nom_repertoire]$ mkdir test1/test2 mkdir: création du répertoire 'test1' mkdir: création du répertoire 'test1/test2' |
Créer un répertoire et y aller en une commande
Dans l’exemple ci-dessous, comme avec une seule commande, nous créons un répertoire avec la commande mkdir et nous allons à l’intérieur :
1 2 3 4 | [romain@arch_machine ~]$ mkdir rep && cd $_ mkdir: création du répertoire 'rep' [romain@arch_machine rep]$ pwd /home/romain/rep |
Créer une arborescence de répertoires avec mkdir
Dans l’exemple ci-dessous, nous créons avec la commande mkdir ainsi que l’option -p une arborescence de répertoires :
1 2 3 4 5 6 7 8 9 10 | [romain@arch_machine ~]$ mkdir -p travail/{projet1,projet2}/{src,bin,bak} mkdir: création du répertoire 'travail' mkdir: création du répertoire 'travail/projet1' mkdir: création du répertoire 'travail/projet1/src' mkdir: création du répertoire 'travail/projet1/bin' mkdir: création du répertoire 'travail/projet1/bak' mkdir: création du répertoire 'travail/projet2' mkdir: création du répertoire 'travail/projet2/src' mkdir: création du répertoire 'travail/projet2/bin' mkdir: création du répertoire 'travail/projet2/bak' |
Créer avec mkdir un répertoire à partir de la date du jour
Dans l’exemple ci-dessous, nous créons avec la commande mkdir un répertoire portant comme nom la date du jour :
1 2 3 | [romain@arch_machine ~]$ mkdir $(date +%Y%m%d) [romain@arch_machine ~]$ ls 20160320 |
Afficher l’aide de la commande mkdir
L’option --help permet d’afficher l’aide mémoire de la commande mkdir :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [romain@arch_machine ~]$ mkdir --help Utilisation : mkdir [OPTION]... RÉPERTOIRE... Créer le ou les RÉPERTOIREs s'ils n'existent pas. Les arguments obligatoires pour les options longues le sont aussi pour les options courtes. -m, --mode=MODE définir l'accès fichier à MODE (comme avec chmod), et non a=rwx - umask -p, --parents créer les répertoires parents nécessaire, sans erreur s'ils existent -v, --verbose afficher un message pour chaque répertoire créé -Z définir le contexte de sécurité SELinux de tous les répertoires créés au type par défaut --context[=CTX] comme -Z ou, si CTX est indiqué, définir le contexte de sécurité SELinux ou SMACK à CTX --help afficher l'aide et quitter --version afficher des informations de version et quitter Aide en ligne de GNU coreutils : <http://www.gnu.org/software/coreutils/> Signalez les problèmes de traduction de « mkdir » à : <traduc@traduc.org> Full documentation at: <http://www.gnu.org/software/coreutils/mkdir> or available locally via: info '(coreutils) mkdir invocation' |
je pense que 700 et ne pas 755, vous avez fait en exemple 700 et ds le texte 755!!!??
Effectivement, il y avait une erreur, cette dernière à été corrigée. Merci.