Comment créer des répertoires imbriqués sous Linux

Créer des répertoires imbriqués alors que le répertoire parent n’existe pas est… impossible. Mais cela ne signifie pas non plus que vous devez d’abord créer le répertoire parent et invoquer à nouveau mkdir.

Il existe un moyen plus rapide d’y parvenir; vous pouvez utiliser le -pdrapeau avec la mkdircommande.

mkdir -p parent_dir/child_dir/nested_child_dir

L’utilisation du -pdrapeau indiquera mkdirqu’il est correct de créer un répertoire parent s’il n’existe pas encore, puis de créer un répertoire enfant imbriqué.

syntaxe mkdir

La méthode de création de répertoires dans les systèmes de type UNIX consiste à utiliser la commande mkdir .

Ci-dessous la syntaxe de mkdir :

mkdir [OPTION] DIRECTORY

Créer des répertoires imbriqués avec le drapeau ‘-p’

À titre d’exemple, je souhaite créer une structure de répertoires dans laquelle le nom du répertoire parent est “chansons” et le nom du répertoire enfant est “artistes”.

Le moyen typique d’y parvenir est d’utiliser l’ensemble de commandes suivant :

$ mkdir -v songs
mkdir: created directory 'songs'

$ mkdir -v songs/artists
mkdir: created directory 'songs/artists'

# I only included the '-v' flag for verbosity, you need not use it

Ceci peut être réalisé en une seule ligne comme ceci:

$ mkdir -p -v songs/artists
mkdir: created directory 'songs'
mkdir: created directory 'songs/artists'

Mais… tu as dit, “c’est impossible.” Techniquement, vous ne pouvez pas créer un répertoire enfant si le parent n’existe pas. Oui, c’est toujours vrai.

Alors, laissez-nous comprendre ce qui s’est passé ici.

La commande mkdir a un indicateur ‘-p’ et son descripteur est “aucune erreur si elle existe, créez les répertoires parents si nécessaire”. La deuxième partie de cette déclaration indique que mkdir créera un répertoire parent si nécessaire.

READ  Comment utiliser la commande Sudo sous Linux

Si vous regardez la sortie de mkdir dans le deuxième exemple, vous remarquerez que mkdir a d’abord créé le répertoire ‘songs’, puis créé ‘artistes’ sous le répertoire ‘songs’.

Cela indique que mkdir créera d’abord les répertoires parents nécessaires, puis le répertoire enfant si vous utilisez l’indicateur ‘-p’.

Créer plusieurs répertoires enfants sous un répertoire parent qui n’existe pas encore

Essayons de créer plusieurs répertoires enfants lorsque le répertoire parent n’existe pas.

Il existe deux façons d’y parvenir. Regarde:

$ mkdir -vp songs/artists songs/albums songs/genres songs/genres/classical songs/genres/pop
mkdir: created directory 'songs'
mkdir: created directory 'songs/artists'
mkdir: created directory 'songs/albums'
mkdir: created directory 'songs/genres'
mkdir: created directory 'songs/genres/classical'
mkdir: created directory 'songs/genres/pop'

Ou, vous pouvez utiliser la commande suivante :

$ mkdir -vp songs/{artists,albums,genres/{classical,pop}}
mkdir: created directory 'songs'
mkdir: created directory 'songs/artists'
mkdir: created directory 'songs/albums'
mkdir: created directory 'songs/genres'
mkdir: created directory 'songs/genres/classical'
mkdir: created directory 'songs/genres/pop'

Comme vous pouvez le voir, les deux commandes ont le même résultat, mais la dernière est plus rapide à saisir.

Les accolades ‘{}’ sont utilisées pour spécifier une liste, dans ce cas, une liste de noms de répertoires.

Dans cet exemple, le répertoire parent ‘songs’ n’existe pas, il a donc été créé. Ensuite, les répertoires enfants ‘artistes’, ‘albums’ et ‘genres’ sont créés. Les répertoires « classique » et « pop » sont répertoriés sous des genres, donc ces deux répertoires sont le répertoire enfant de « genres », et ils sont créés comme je m’y attendais.

Conclusion

Vous pouvez en savoir plus sur la commande mkdir dans l’article ci-dessous.

5/5 - (1 vote)
SAKHRI Mohamed
SAKHRI Mohamed

Le blog d'un passionné d'informatique qui partage des actualités, des tutoriels, des astuces, des outils en ligne et des logiciels pour Windows, macOS, Linux, Web designer et jeux vidéo.

Publications: 3746

Laisser un commentaire

Your email address will not be published.