我的zip文件里面有我的文件夹。解压缩我的zip文件后,我想为zip中的可用文件夹迭代一个循环。
内部循环条件如下:
如果我的文件夹有索引文件(这是一个包含一些数据的文件),那么我只想运行一些进程(我知道这个进程是什么......)。否则我们可以忽略该文件夹。
如果有任何内容,那么循环将继续使用其他文件夹
感谢提前..
答案 0 :(得分:0)
这样的事情?
(注意:我假设$ destdir只包含zip文件及其提取!)
zipfile="/path/to/the/zipfile.zip"
destdir="/path/to/where/you/want/to/unzip"
indexfile="index.txt" #name of the index files
mkdir -p "$destdir" 2>/dev/null #make "sure" it exists.. but ignore errors in case it already exists
cd "$destdir" || { echo "Can not go into destdir=$destdir" ; Exit 1 ; }
#at that point, we are inside $destdir : we can start to work:
unzip "$zipfile"
for i in ./*/ ; do # you could change ./*/ to ./*/*/ if the zip contains a master directory too
cd "$i" && { #the && is important: you want to be sure you could enter that subdir!
if [ -e ./"$indexfile" ]; then
dosomething # you can define the function dosomething and use it here..
# or just place commands here
fi
cd - #we can safely this works, as we started there...
}
done
注意:我在./*/
而不是*/
上进行迭代,因为dirname可能包含leding -
,因此使cd -something
无法正常工作(它会说它可以'认识到一些选择!)!如果./
消失,cd ./-something
就可以了!