Comprimir archivo por archivo

Hola tengo 800 archivos en una carpeta y me gustaria generar un zip por archivo. Estoy usando este script

for archivo in *.cfg; do
zip $archivo $archivo.zip
done


Pero no me hace nada no se si es porque los nombres de archivos llevan espacio ... A ver si alguien me echa una mano.
find /path/completo/ -type f -exec zip -rm "{}" "{}" \;

Donde /path/completo/ es la ruta completa al directorio donde se encuentran los ficheros, ya si quieres acotar más pones más controles en el find como un -name, etc...

Te recomiendo que elimines todos los espacios de los ficheros, en linux no es recomendable usar espacio, ni caracteres especiales en los nombres de ficheros y directorios, usa "_" o "-", etc.. sin las comillas claro, para separar.
es por los espacios si. entrecomilla los nombres y prueba otra vez.
Al final lo hize de la siguiente manera los espacios los cambie por _ .

for f in * ; do mv "$f" "${f// /_}" ; done
for file in `ls -1`; do zip "$file".zip "$file"; done


Y luego con pyrename lo cambie de nuevo a espacio. Gracias porla ayuda.
3 respuestas