スペース、コンマ、括弧を含むフォルダーにforループを作成しようとしています。例えば:
Italy - Rimini (Feb 09, 2013)
まず、親フォルダー/ albumsをスキャンして、上記の例のようなサブフォルダーを探します。次に、それらのサブフォルダー内のファイルに対してcurlアクションを実行します。サブフォルダにスペース、コンマ、またはその他の記号が含まれていない場合は、正常に機能します。
for dir in `ls /albums`;
do
for file in /albums/$dir/*
do
curl http://upload.com/up.php -F uploadfile[]=@"$file" > out.txt
php process.php
done
php match.php
done
しかし、そのようなシンボルがある場合は、カールビットがスタックしているようです-$ fileが見つかりません(おそらく$ dirが正しくないため)。
サブディレクトリ内のすべてのシンボルを置き換えるか、それらを削除するか、フォルダの名前を001、002に変更すると、問題なく機能します。しかし、それに頼る前に、サブフォルダー名をそのままにして、bashトリックを使用して解決できるかどうかを知りたいですか?