Yo soy relativamente nuevo en bash y estoy teniendo algunos problemas con un guión que estoy tratando de escribir. Después de pasar la última hora o así que investigando y probando nuevas técnicas, aún soy incapaz de 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 son tres carpetas: Raw
, Edited
y Final
. Mi objetivo es, con un solo script de bash, crear enlaces simbólicos en mi Escritorio para cada Final
carpeta Y cambiarle el nombre a la carpeta padre. Ejemplo: me gustaría /Volumes/Server\ RAID/Photos/2016-10\ Fleet\ Week/Final
tener un enlace simbólico en el Escritorio con nombre 2016-10 Fleet Week
.
He probado muchas diferentes variedades del código que he publicado para abajo, pero el código que me han incluido fue el más conciso de código (aunque no funcione).
Descripción del código:
- cd de Escritorio, de modo que los enlaces simbólicos son creados allí
- el uso de una antena a través de las carpetas
- crear un enlace simbólico - aquí está el problema: debo incluir el nombre de la carpeta en la ruta de acceso del archivo de alguna manera, pero también agregar
\
antes de los espacios de modo que el comando no falla. Sin EMBARGO, he estado recibiendo mensajes de error diciendo que no hay ningún lugar que se llamaRAID/Photos
que me hace pensar que el guión es de tropiezo en el primer espacio, incluso con la barra diagonal inversa. -
Cambio de nombre de
Final
enlace simbólico a la carpeta de nombre. (Yo asumí que no necesita todos los directorios de aquí porque ya estoy en el Escritoriocd Desktop for f in /Volumes/Server\ RAID/Photos; do ln -s /Volumes/Server\ RAID/Photos/"$f"/Final mv Final $f done
PREGUNTA: ¿Puede alguien por favor me ayude a vaciar este script? (Me preocupa la parte tres, pero yo no diría que no a ayudar con el resto de ella).