Мое дерево папки
.
|-- 1
|-- 2
|-- 3
...
|-- 777
Я хотел бы создать изображения папки к каждой папке.
Я работаю неудачно
mkdir */pictures
Один путь, конечно, создает 777 mkdir
- команды с regex Vim. Однако я знал бы, как можно сделать это в оболочке.
Как может Вы mkdir */pictures
?
for x in `seq 1 777`
do
mkdir $x/pictures;
done
Кроме того, в прошлом Вы упомянули zsh
и это должно работать без модификации под, по крайней мере, bash
и zsh
.
Почти то же как другие, но добавление наклонной черты, таким образом, это только считает каталоги и не регулярные файлы
for x in */
do
mkdir $x/pictures;
done
Много способов сделать это, я думаю, что это является самым простым:
for f in *; do mkdir $f/pictures; done
Это быстро и грязно и сделает подкаталог для всего в Вашем текущем каталоге. Вы получите безопасные ошибки, если будут файлы в текущем рабочем каталоге. Если это беспокоит Вас, использование более сложного решения находит, или seq и т.п. лучше. Если Ваши каталоги пронумерованы затем, более простая версия seq примера Sean (в ударе)
mkdir {1..777}/pictures
BTW, mkdir может легко сделать несколько каталогов сразу:
mkdir 1/pictures 2/pictures
Проблема состоит в том, что */pictures ни до чего не расширяется в оболочке, так как каталоги еще не существуют.
Я собираюсь предположить, что Вы используете удар...
find . -mindepth 1 -maxdepth 1 -type d | while read dir; do mkdir $dir/pictures; done
или если все в каталоге - каталог
ls | while read dir; do mkdir $dir/pictures; done
При использовании tcsh необходимо сделать это с неэлегантным для цикла.
mkdir ~/Pictures
mkdir ~/container
mkdir ~/container/1
mkdir ~/container/2
mkdir ~/container/3
mkdir ~/container/4
mkdir ~/container/5
cp -r ~/Pictures ~/container/**/
rm -rf ~/Pictures
Это добьется цели, я только что попробовал его