Disons que j'ai la structure suivante:
./
├── Dir1
├── Dir2
│ ├── SubDir1
│ │ └── SubSubDir1
│ └── SubDir2
└── Dir3
└── SubDir1
Utilisez ceci pour créer la structure de test:
mkdir -p Dir1 Dir2/SubDir1/SubSubDir1 Dir2/SubDir2 Dir3/SubDir1
Je voudrais créer un dossier Texture
dans chaque répertoire pour inclure l'emplacement actuel afin qu'il ressemble à ceci (tous les nouveaux répertoires Texture
sont marqués avec *
):
./
├── Dir1
│ └── Textures*
├── Dir2
│ ├── SubDir1
│ │ ├── SubSubDir1
│ │ │ └── Textures*
│ │ └── Textures*
│ ├── SubDir2
│ │ └── Textures*
│ └── Textures*
├── Dir3
│ ├── SubDir1
│ │ └── Textures*
│ └── Textures*
└── Textures*
Ensuite, je serais également en mesure de supprimer ces mêmes dossiers après avoir travaillé avec eux. Vous pouvez supposer qu'aucun autre répertoire nommé Textures
ne doit être enregistré.
Je voudrais donc créer un répertoire Textures
dans le répertoire courant et tous ses sous-répertoires. Et j'aimerais pouvoir supprimer tous les répertoires nommés Textures
lorsque j'aurai fini de déplacer des fichiers.
Vous pouvez utiliser une boucle ...
shopt -s globstar # turn on recursive globbing
for d in **/; do # for every directory
echo mkdir -p "$d"Textures # make a new directory inside named Textures
done
Supprimez echo
après le test pour créer réellement les répertoires.
Vous pouvez désactiver globstar
avec shopt -u globstar
, mais il est désactivé par défaut et le sera lorsque vous démarrez un nouveau shell.
Faites vos choses ...
Ensuite, pour supprimer les répertoires, d'abord find
find -type d -name "Textures"
Ensuite, si la sortie semble correcte, ajoutez -delete
find -type d -name "Textures" -delete