好的,所以我在这里花了几个小时处理一个愚蠢的问题。 我需要制作一个bash脚本,其中包括拉链文件夹的内容。 好吧,没什么大不了的,zip filename.zip文件可以解决问题。问题是创建文件夹的人在文件夹的名称中放置了一些空格。如果我不在脚本上,我会使用“\”来轻松地转义文件夹中的空格,目录在var中。 这使得它更容易理解,这里是脚本和文件夹结构:
#!/bin/bash
find /dados/Pedagogico/RaquelRejane/teste -mindepth 1 -maxdepth 1 -type d '!' -exec test -e "{}/feito" ';' -print | while read dir
do
mkdir "$dir/modificado"
mogrify -path "$dir/modificado" -resize 800x600 "$dir/*.JPG"
mogrify -path $dir"/modificado" -resize 800x600 $dir"/*.jpg"
mogrify -path $dir"/modificado" -resize 800x600 $dir"/*.PNG"
mogrify -path $dir"/modificado" -resize 800x600 $dir"/*.png"
zip "$dir/modificado/modificado.zip" "$dir/modificado/*"
touch "$dir/feito"
done
它完成了它的目的,搜索没有文件feito的文件夹,将一些图像调整到其原始文件夹中的modificado目录中。 之后它应该压缩调整大小的图像。这不起作用。我无法压缩文件夹,我只需要压缩文件。目录是这样的:
total 32
drwxr-xr-x 5 root root 4096 Sep 2 17:41 .
drwxrwxrwx 8 root root 4096 Sep 2 10:45 ..
drwxr-xr-x 3 root root 12288 Sep 2 16:26 Laguna - dia 27.8.14 - 4??s anos A ,B e F
drwxr-xr-x 3 root root 4096 Sep 2 16:12 Laguna -dia 20.8.14 -4??s anos E,G e H
drwxr-xr-x 3 root root 4096 Sep 2 16:17 Passeio ao Parque do Meio Ambiente - 2??s anos G e H - 14 e 15.8
我做错了什么?有什么提示吗?
答案 0 :(得分:1)
我认为你的问题是引用的通配符,因为zip试图只包含一个名为" / dados / Pedagogico / RaquelRejane / teste / abc / modificado / *" (例如)在ZIP存档中。尝试改为
zip -r "$dir/modificado/modificado.zip" "$dir/modificado"
或
zip "$dir/modificado/modificado.zip" "$dir"/modificado/*
要防止包含ZIP存档本身,我会将ZIP存档放在其他目录中,或通过-x选项排除ZIP存档:
zip "$dir/modificado/modificado.zip" "$dir"/modificado/* -x "$dir"/modificado/modificado.zip