script para zipear archivos

Hola,

Resulta que tengo un directorio por aquí con un montón de archivos que me gustaría comprimir con zip uno por uno e ir borrando los descomprimidos de paso en bash ;-)

Básicamente el tema es que no tengo ni idea de shell script, se me ocurre que algo así quizás sirviera:


$ls -1 | while read fichero
>do
> echo $fichero
>zip "$fichero".zip $fichero
>rm $fichero
>done



El problema que me encuentro es que los ficheros tienen caracteres especiales, como espacios que hay que escapar (no me vale el ls así, ya que no saca la salida con los caracteres especiales escapados)

¿Alguna idea? No tiene pinta de difícil pero no caigo en ello
Muchas gracias ;-)

Edito: ls -b parece que me saca los archivos con los caracteres escapados. No fona así
Así es como lo haría yo:

for i in *archivos; do zip "$i".zip "$i"; rm "$i"; done
Muchas gracias. Me fona con el for, cómo mola esto :-)
Estoy intentando remover ahora la extensión .zip de los archivos cosa.zip, básicamente por curiosidad.

for i in *;do gawk -F. "zip"; done

Pero no funciona. Es lo primerísimo que pruebo con awk así que fijo que está realmente mal pero bueno, a ver si me echáis un cable. La idea es, tengo un archivo nombrado con algo.algo.algo.algo,... y me gustaría cortar por el final desde el último punto

grax
Dos cosas:

1) No quieres ejecutar el rm si el zip no ha funcionado. así que usa zip ... && rm ...

2)

for i in *.ext ; do mv "${i}" "${i%.ext}"; done


bash(1) para mas info

- ferdy
Muchas gracias. A ver si a la tarde cojo un ratillo para echarle un ojo ;-)
5 respuestas