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/Photosche mi fa pensare che lo script inciampi sul primo spazio, anche con la barra rovesciata. -
Cambia il nome di
Finallink 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).