这样的文件path:path/path/path/文件名2.3.pdf.zip
我究竟做错了什么:
# unzip files back to normal # and remove zip files for f in `find "$1" -type f -iname "*.zip"`; do dir=`dirname "$f"` unzip -o "$f" -d "$dir" rm -f "$f" done
错误消息:unzip:无法find或打开文件,file.zip或file.ZIP
使用UnZip 5.52红帽企业Linux服务器版本5.10(Tikanga)
我认为你的循环正在分裂基于空间的find
输出。 你可能想要一次读一行,像这样
find "$1" -type f -iname "*.zip" | while read f do dir=`dirname "$f"` unzip -o "$f" -d "$dir" rm -f "$f" done
或者,也可以设置IFS:
IFS='\n' for f in `find "$1" -type f -iname "*.zip"`; do dir=`dirname "$f"` unzip -o "$f" -d "$dir" rm -f "$f" done
也许你的问题在这里
dir=`dirname $f`
改为尝试
dir=`dirname "$f"`
另外,在几行代码中还有一些不必要的分号。