多数のサブディレクトリを含むディレクトリがあり、そのうちのいくつかにはいくつかの zip ファイルが含まれています。ディレクトリを調べて「Archive-foo」という名前を探してサブディレクトリに入るbashスクリプトを作成しようとしています。zipファイルが含まれている場合は、それらを解凍してzipファイルを破棄します。
私が書いたスクリプトは、テスト ディレクトリ (5 つのサブディレクトリ) で機能しますが、メインのアーカイブ ディレクトリ (1200 以上のサブディレクトリ) で使用しようとすると、何もできません。
forループが循環できるアイテムの最大数はありますか?
これが私のコードです
#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
NUMBER=0
for i in $( ls )
do
#echo "$i"" is in the Top Level"
NUMBER=$[NUMBER+1]
if ($(test -d "$i"))
then
#echo "$i"" is a Directory"
if [[ "$i" == *Archive* ]]
then
#echo "$i"" has Archive in the name"
cd "$i"
unzip -n "*".zip
mv *.zip ~/.Trash
#else
#echo "$i"" does not have Archive in the name"
fi
#else
#echo "$i"" is NOT a Directory skipping"
fi
done
echo "$NUMBER of items"
IFS=$SAVEIFS