Créer de manière récursive une structure de répertoire imbriquée & Tous les sous-dossiers avec une seule commande
La création d'une série de répertoires imbriqués les uns dans les autres peut être effectuée instantanément via la ligne de commande. Cela facilite la création immédiate et récursive d'une structure de répertoires complexe de dossiers dans des sous-dossiers de sous-dossiers, sans avoir à naviguer manuellement dans chaque répertoire pour créer un nouveau répertoire, puis à naviguer à nouveau vers ce sous-répertoire pour créer encore un autre répertoire, etc. .Au lieu de cela, une astuce de ligne de commande créera le chemin complet du répertoire intermédiaire d'un seul coup.
La création simple d'une structure de répertoires imbriqués nécessite l'utilisation de la commande familière mkdir, qui est couramment utilisée pour créer un nouveau dossier unique, mais avec la pièce jointe de l'indicateur -p pour spécifier un chemin complet créer. Si vous voulez essayer vous-même, lancez l'application Terminal dans le dossier /Applications/Utilities/ et suivez la procédure pour voir comment utiliser mkdir -p pour créer une série de répertoires dans une seule ligne de commande en utilisant un chemin spécifié.
Création récursive d'une structure de répertoire en spécifiant un chemin
Sous sa forme la plus simple, il vous suffit de spécifier le chemin comme ceci pour mkdir :
mkdir -p /path/to/make/
L'indicateur -p garantit que tous les sous-dossiers sont créés de manière récursive et à l'endroit approprié.
À titre d'exemple, disons que le chemin du répertoire imbriqué que nous voulons créer est "/Create/These/Folders/Within/Each/Other/" et qu'aucun de ces dossiers ou sous-dossiers n'existe actuellement. Pour tous les créer instantanément, utilisez simplement la chaîne de commande suivante :
mkdir -p ~/Create/These/Folders/Within/Each/Other/
Cela fera du dossier "Create" le répertoire parent suivi de la série complète de "/These/Folders/Within/Each/Other/" comme répertoires enfants imbriqués de manière appropriée.
Vous pouvez spécifier un chemin aussi long que vous le souhaitez et cela créera instantanément le parent et tous les répertoires enfants intermédiaires.
Vérification du répertoire et de tous les sous-dossiers créés
Pour vérifier rapidement que tous les répertoires ont été construits et que tout a fonctionné comme prévu en utilisant la commande 'find' comme ceci :
find (répertoire parent) -type d -print
En utilisant à nouveau l'exemple ci-dessus, la commande de recherche ressemblerait à ceci :
find ~/Create/ -type d -print
La sortie de cette commande ressemblerait à ce qui suit, répertoriant de manière récursive depuis le répertoire parent vers tous les dossiers enfants :
$ find ~/Create -type d -print /Create /Create/These /Create/These/Folders /Create/These/Folders/Within /Create/These /Dossiers/Dans/Chaque /Créer/Ces/Dossiers/Dans/Chacun/Autre
Bien sûr, vous pouvez également vous tourner vers le Finder pour vérifier qu'une structure de dossiers complexe a été construite, peut-être plus facilement visualisée à partir de la vue "Liste", puis en utilisant les triangles pour ouvrir récursivement chaque sous-répertoire et affiche son contenu, ressemblant à ceci :
(Notez que les fichiers .DS_Store sont affichés car tous les fichiers cachés sont visibles)
C'est une astuce très utile que nous avons abordée il y a quelque temps dans le cadre d'une poignée d'astuces utiles en ligne de commande, mais compte tenu de la commodité, cela vaut la peine d'être couvert par lui-même.
Et oui, l'utilisation du Terminal est de loin le moyen le plus rapide d'y parvenir, car il n'y a pas d'astuce similaire spécifique au Mac Finder, bien que l'on puisse théoriquement automatiser la création de répertoires imbriqués via l'application Automator dans le système d'exploitation X si vous le souhaitez. Pour ce que ça vaut, la commande mkdir fonctionne de la même manière sous Mac OS X et Linux, vous pouvez donc l'utiliser sur toutes les plates-formes si vous le souhaitez. Vous voulez plus d'astuces en ligne de commande ? Nous avons ce qu'il vous faut.