empecé con esto:¿Cómo hacer algo con cada archivo en un directorio usando bash?
command *
Pero esto no funciona cuando el directorio está vacío; el * comodín se convierte en un carácter literal "*". Así que cambié a esto:
for i in *; do
...
done
que funciona, pero una vez más, no si el directorio está vacío. Me recurrido al uso de ls:
for i in `ls -A`
pero, por supuesto, a continuación, los nombres de archivo con espacios en ellos separarnos. He intentado virar en el interruptor -Q:
for i in `ls -AQ`
que hace que los nombres que todavía puede dividir, sólo con un carácter de comillas al principio y al final de su nombre. ¿Me estoy perdiendo algo obvio aquí, o es más difícil de lo que debería ser?
nombres de archivos de Windows estúpidos con espacios! Voy a ser martillado (abajo votado) para esto, pero ...Mi consejo para los compañeros de trabajo con respecto a las secuencias de comandos: tan pronto como su script tenga "si" o "mientras", es hora de dejar de lado "shell", y recoger "perl" :-(estoy seguro de que hay alguna forma masoquista de hacer esto trabajo, pero ay. Por cierto, la solución find -exec de Bombe necesita limitar la profundidad, por lo que los subdirectorios tampoco se recogen. – Roboprog