Soy relativamente nuevo en bash y estoy teniendo algunos problemas con un script que estoy tratando de escribir. Después de pasar la última hora más o menos investigando y probando nuevas técnicas, todavía no puedo hacer lo que me gustaría.
Mi objetivo es este: tengo una carpeta /Volumes/Server\ RAID/Photos
donde guardo todas mis fotos. Cada carpeta se titula YYYY-MM FolderName
donde a veces hay espacios en FolderName
. Dentro de estas carpetas hay tres carpetas: Raw
, Edited
y Final
. Mi objetivo es, con un solo script de bash, crear enlaces simbólicos en mi Escritorio para cada carpeta Final
Y cambiar su nombre a su carpeta principal. Ejemplo: me gustaría que /Volumes/Server\ RAID/Photos/2016-10\ Fleet\ Week/Final
tuviera un enlace simbólico en el escritorio llamado 2016-10 Fleet Week
.
He probado muchas variedades diferentes del código que he publicado a continuación, pero el código que incluí fue el más conciso (aunque no funcionó).
Descripción del código:
- cd to Desktop para que se creen enlaces simbólicos allí
- utilizar para bucle para recorrer las carpetas
- crear enlace simbólico: aquí está el problema: necesito incluir el nombre de la carpeta en la ruta del archivo de alguna manera, pero también agregar
\
antes de los espacios para que el comando no falle. SIN EMBARGO, he estado recibiendo mensajes de error que dicen que no hay un lugar llamadoRAID/Photos
, lo que me hace pensar que el script está tropezando en el primer espacio, incluso con la barra invertida. -
Cambie el nombre del enlace simbólico
Final
al nombre de la carpeta. (Supuse que no necesitaba directorios completos aquí porque ya estoy en Desktopcd Desktop for f in /Volumes/Server\ RAID/Photos; do ln -s /Volumes/Server\ RAID/Photos/"$f"/Final mv Final $f done
PREGUNTA: ¿Puede alguien ayudarme a eliminar este script? (Me preocupa principalmente la tercera parte, pero tampoco diría que no para ayudar con el resto).