Предположим, что у меня есть следующая структура:
./
├── Dir1
├── Dir2
│ ├── SubDir1
│ │ └── SubSubDir1
│ └── SubDir2
└── Dir3
└── SubDir1
Используйте это, чтобы создать тестовую структуру:
mkdir -p Dir1 Dir2/SubDir1/SubSubDir1 Dir2/SubDir2 Dir3/SubDir1
Я хотел бы создать папку Texture в каждом каталоге, чтобы включить текущее местоположение, чтобы оно выглядело (все новые Texture каталоги отмечены *):
./
├── Dir1
│ └── Textures*
├── Dir2
│ ├── SubDir1
│ │ ├── SubSubDir1
│ │ │ └── Textures*
│ │ └── Textures*
│ ├── SubDir2
│ │ └── Textures*
│ └── Textures*
├── Dir3
│ ├── SubDir1
│ │ └── Textures*
│ └── Textures*
└── Textures*
Тогда я также смог бы удалить эти же папки после работы с ними. Вы можете предположить, что нет других каталогов с именем Textures, которые необходимо сохранить.
Поэтому я хотел бы создать каталог Textures в текущем каталоге и все его подкаталогов. И я хотел бы иметь возможность удалять каждый каталог с именем Textures, когда я делаю перемещение файлов вокруг.
Вы можете использовать цикл ...
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
Удалите echo после тестирования, чтобы фактически создать каталоги.
Вы можете отключить globstar с помощью shopt -u globstar, но он отключен по умолчанию и будет выключен, если вы запустите новую оболочку.
Сделайте свои вещи ...
Затем, чтобы удалить каталоги, сначала find их
find -type d -name "Textures"
Затем, если вывод выглядит нормально, добавьте -delete
find -type d -name "Textures" -delete
Вы можете использовать цикл ...
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
Удалите echo после тестирования, чтобы фактически создать каталоги.
Вы можете отключить globstar с помощью shopt -u globstar, но он отключен по умолчанию и будет выключен, если вы запустите новую оболочку.
Сделайте свои вещи ...
Затем, чтобы удалить каталоги, сначала find их
find -type d -name "Textures"
Затем, если вывод выглядит нормально, добавьте -delete
find -type d -name "Textures" -delete
Вы можете использовать цикл ...
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
Удалите echo после тестирования, чтобы фактически создать каталоги.
Вы можете отключить globstar с помощью shopt -u globstar, но он отключен по умолчанию и будет выключен, если вы запустите новую оболочку.
Сделайте свои вещи ...
Затем, чтобы удалить каталоги, сначала find их
find -type d -name "Textures"
Затем, если вывод выглядит нормально, добавьте -delete
find -type d -name "Textures" -delete