niesamowite, że nigdy o to pytanie btained odpowiedzi sane:
shopt -s nullglob
for i in */; do
mkdir -- "${i}newdir"
done
- Jest w 100% bezpieczny dotyczące śmieszne symbole w nazwach plików (obowiązuje, symbole wieloznaczne, etc.).
- The
shopt -s nullglob
tak, że glob rozwinie się do zera, jeśli nie ma dopasowań.
- w celu oznaczenia końca opcji (jeśli istnieje katalog z nazwą zaczynającą się od łącznika, nie mylisz
mkdir
próbując zinterpretować go jako opcję).
To po cichu ignoruje ukryte katalogi. Jeśli trzeba wykonać tę operację ukrytych katalogów, wystarczy zamienić linię shopt -s nullglob
brzmienie:
shopt -s nullglob dotglob
The dotglob
pliki tak, że globs również rozważyć ukryte/katalogów.
Jeśli chcesz tylko jedno wywołanie mkdir
:
shopt -s nullglob
dirs=(*/)
mkdir -- "${dirs[@]/%/newdir}"
Proszę, nie analizować wyjście 'ls'. Dziękuję Ci. –