Удивительно, что этот вопрос никогда о btained разумный ответ:
shopt -s nullglob
for i in */; do
mkdir -- "${i}newdir"
done
- Это 100% безопасно относительно смешных символов в именах файлов (пробелы, специальные символы и т.д.).
shopt -s nullglob
так, чтобы glob не увеличивался до нуля, если совпадений нет.
--
в mkdir
, чтобы отметить конец опций (если есть каталог с именем, начинающимся с дефиса, не путайте mkdir
, пытаясь интерпретировать его как опцию).
Это молча игнорирует скрытые каталоги. Если вам необходимо выполнить эту операцию на скрытых каталогах, просто замените строку shopt -s nullglob
следующим:
shopt -s nullglob dotglob
The dotglob
так, что шарики также рассмотреть скрытые файлы/каталоги.
Если вы хотите только один вызов mkdir
:
shopt -s nullglob
dirs=(*/)
mkdir -- "${dirs[@]/%/newdir}"
Пожалуйста, не разобрать вывод команды ls. Спасибо. –