Sono relativamente nuovo a bash e sto avendo qualche problema con uno script che sto cercando di scrivere. Dopo aver passato l'ultima ora o più alla ricerca e alla sperimentazione di nuove tecniche, non riesco ancora a fare ciò che vorrei.
Il mio obiettivo è questo: ho una cartella /Volumes/Server\ RAID/Photos
dove tengo tutte le mie foto. Ogni cartella è denominata YYYY-MM FolderName
dove a volte ci sono spazi in FolderName
. All'interno di queste cartelle ci sono tre cartelle: Raw
, Edited
e Final
. Il mio obiettivo è, con un singolo script bash, creare collegamenti simbolici sul mio desktop per ogni cartella Final
E rinominarlo nella sua cartella padre. Esempio: vorrei /Volumes/Server\ RAID/Photos/2016-10\ Fleet\ Week/Final
per avere un collegamento simbolico sul desktop chiamato 2016-10 Fleet Week
.
Ho provato molte diverse varietà di codice che ho postato in basso, ma il codice che ho incluso era il codice più conciso (anche se non funzionava).
Descrizione del codice:
- cd sul desktop in modo che i link simbolici vengano creati lì
- usa il ciclo per scorrere ciclicamente le cartelle
- crea un link simbolico - ecco il problema: devo aggiungere il nome della cartella nel percorso del file in qualche modo, ma aggiungere anche
\
prima degli spazi in modo che il comando non abbia esito negativo. TUTTAVIA, ho ricevuto messaggi di errore che dicevano che non c'è posto chiamatoRAID/Photos
che mi fa pensare che lo script inciampi sul primo spazio, anche con la barra rovesciata. -
Cambia il nome di
Final
link simbolico al nome della cartella. (Supponevo che non avessi bisogno di directory complete qui perché sono già in Desktopcd Desktop for f in /Volumes/Server\ RAID/Photos; do ln -s /Volumes/Server\ RAID/Photos/"$f"/Final mv Final $f done
DOMANDA: Qualcuno può aiutarmi a scovare questo script? (Mi interesso principalmente della terza parte, ma non direi di no per aiutare il resto).