我有一个包含大量子目录的目录,其中一些子目录中有几个 zip 文件。我正在尝试编写一个 bash 脚本,它将遍历目录并查找名称“Archive-foo”进入子目录,如果它包含 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