シェルスクリプトを介してmkdirを使用して一括ディレクトリを作成しようとしています。以下のスクリプトは次のとおりです。
#!bin/bash
mkdir /tmp/report*/testfolder*/testdoank
実行するとエラーが発生します。
-bash: ./makefolder.sh: bin/bash: bad interpreter: No such file or directory
何が問題なの?
ベストアンサー1
ハッシュバンの間違ったパスによってエラーが発生したほか、mkdir
コマンド自体にも問題がありました。
globはリストにのみ使用できることを覚えておいてください。既存のしたがって、表示されるすべてのエントリはmkdir /tmp/foo*
既存のディレクトリを引数として渡しますmkdir
。/tmp/foo1
存在する場合は、そのディレクトリに渡され、既に存在するとmkdir
文句を言います。もし/tmp/foo2
いいえ存在する、そうだろういいえに渡され、mkdir
生成されません。新しいディレクトリを作成するには、追加の作業を実行する必要があります。
どのディレクトリを作成するかはわかりませんが、一致testdoank
する各ディレクトリの下にディレクトリを作成すると仮定すると、/tmp/report*/testfolder*
次のことができます。
for dir in /tmp/report*/testfolder*; do
mkdir "$dir"/testdoank
done