好吧,在一个愚蠢的问题上待了几个小时之后,我就在这里。我需要制作一个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
我究竟做错了什么?有小费吗?
我认为您的问题是带引号的通配符,因为zip试图在ZIP存档中仅包含一个名为“ / dados / Pedagogico / RaquelRejane / teste / abc / modificado / *”的文件。试试吧
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句