内のすべてのディレクトリのサブディレクトリを作成します。私はサブディレクトリの数が含まれているいくつかのディレクトリを、持っている、と私は同じ名前のディレクトリを作成したい、これらのサブディレクトリのそれぞれに仮定したフォルダ
./dir-1
./dir-2
...
./dir-n
私が欲しいです行うことmkdir */new-dir
しかし、これはエラーを投げます。これについて最善の方法は何ですか?
内のすべてのディレクトリのサブディレクトリを作成します。私はサブディレクトリの数が含まれているいくつかのディレクトリを、持っている、と私は同じ名前のディレクトリを作成したい、これらのサブディレクトリのそれぞれに仮定したフォルダ
./dir-1
./dir-2
...
./dir-n
私が欲しいです行うことmkdir */new-dir
しかし、これはエラーを投げます。これについて最善の方法は何ですか?
for dir in $(ls); do
mkdir "$dir/new-dir"
done
find . -type d | xargs -I "{x}" mkdir "{x}"/new-dir
あなたはディレクトリの最初のレベルにそれを減らしたい
find . -maxdepth 1 -type d | xargs -I "{x}" mkdir "{x}"/new-dir
良いがそうでなければディレクトリのみをリストするために使用している場合ではなく、ファイルに遭遇したとき、あなたは、エラーの束を得ることができますディレクトリの
for dir in $(ls -d */); do mkdir "$dir/2015" done
アメージング、この質問は決してO正気答えbtained:
shopt -s nullglob
for i in */; do
mkdir -- "${i}newdir"
done
shopt -s nullglob
これは、マッチしない場合にglobが何も展開しないようにするためです。--
mkdir
にオプションの末尾をマークします(ハイフンで始まる名前のディレクトリがある場合は、mkdir
をオプションとして解釈しようとしています)。これは、隠しディレクトリを暗黙に無視します。あなたが隠しディレクトリに対してこの操作を実行する必要がある場合は、単に次によってラインshopt -s nullglob
を置き換える:
shopt -s nullglob dotglob
dotglob
グロブも隠しファイル/ディレクトリを考えるようにします。
shopt -s nullglob
dirs=(*/)
mkdir -- "${dirs[@]/%/newdir}"
私はあまりにもdownvoted得た驚くべき!怒っている人は、メモを残してください、ありがとうございます。 –
、ls' 'の出力を解析しないでください:あなたは
mkdir
の唯一の呼び出しをしたい場合は。ありがとうございました。 –