2

文件路径如下:path/path/path/File name 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

错误消息:解压缩:找不到或打开文件、file.zip 或 file.ZIP

使用 UnZip 5.52 Red Hat Enterprise Linux Server 5.10 (Tikanga)

4

2 回答 2

3

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
于 2013-10-17T19:39:55.887 回答
0

也许你的问题就在这里

dir=`dirname $f`

试试吧

dir=`dirname "$f"`

此外,您的几行末尾有一些不必要的分号。

于 2013-10-17T19:11:27.207 回答