ディレクトリ内のパターンを持ついくつかのファイルをlsしようとしています。再帰的ではなく、最初のレベルのみをスキャンしたい。
私のスクリプト:
for i in $(ls $INCOMINGDIR/*$BUSSINESSDATE*)
do
echo $i;
done
上記のコマンドは再帰的にスキャンします。最初のレベルのディレクトリをスキャンするだけにするにはどうすればよいですか?
解析しないls
。また ALL_CAPS_VARSは使用しないでください
for i in "$incoming_dir"/*"$business_date"*; do
対話的に、ls
には-d
サブディレクトリへの下降を防ぐオプション:
ls -d $INCOMINGDIR/*$BUSSINESSDATE*
このコマンドを再帰的にする必要がある理由はありません。しかし$INCOMINGDIR/*$BUSSINESSDATE*
はディレクトリと一致し、ディレクトリ自体ではなく、このディレクトリのコンテンツが表示されます。しかし、このレベルを超える再帰はありません。
このコマンドを使用して、その影響を回避します。
ls -d "$INCOMINGDIR/"*"$BUSSINESSDATE"*
for ... in
コマンドでls
を出力するのは危険です。
一般にfind
はより良い解決策のようです
for i in "$INCOMINGDIR/"*"$BUSSINESSDATE"*