OS X: configura una cartella come "estensione" di un altro, in stile symlink?

0

Ho due cartelle su due diversi volumi:

  • /Volumes/SSD/my-important-folder
  • /Volumes/HDD/my-extension-of-important-folder

Nella seconda cartella inserisco file e cartelle di grandi dimensioni in modo che non occupino tutto lo spazio sull'SSD. Per avere tutto in un posto, creo i collegamenti simbolici dalla prima alla seconda cartella, in questo modo:

/Volumes/SSD/my-important-folder/big-file è un collegamento simbolico a /Volumes/HDD/my-extension-of-important-folder/big-file

Questo è utile perché i file di grandi dimensioni vengono archiviati sull'HDD eppure sono disponibili come se fossero stati archiviati nell'unità SSD. Ma questo ha lo svantaggio di dover creare un link simbolico per ogni cartella file oder che aggiungo alla cartella su HDD.

Sarebbe davvero utile se potessi dire al sistema operativo: se chiamo un file che non è in /Volumes/SSD/my-important-folder , per favore guardalo su /Volumes/HDD/my-extension-of-important-folder .

La cartella sull'HDD sarebbe quindi una vera estensione della cartella sull'SSD.

Questo può essere fatto? Sto usando OS X 10.9.1

    
posta bootsmaat 26.02.2014 - 14:23
fonte

3 risposte

3

Per quanto ne so, non puoi farlo direttamente, ma non sono sicuro di capire perché vorresti farlo?

Perché non collegare semplicemente la cartella intera e non preoccuparti mai di andare avanti?

Se è importante per te che sono solo i file di grandi dimensioni che vengono spostati nell'HDD, puoi creare un'azione Folder in Automator ed eseguire uno script bash che ha controllato le dimensioni del file e in base a quello spostato e ha creato il symlink automaticamente (presumo tu abbia un po 'di capacità tecnica dal momento che sai cos'è symlink pari :) Detto questo, sarei felice di pubblicare istruzioni più dettagliate se necessario).

    
risposta data 26.02.2014 - 14:32
fonte
1

Lo guarderei in un altro modo.

Creerei diverse cartelle nel filesystem:

/Volumes/SSD/Data
/Volumes/SSD/ActualDataOnSSD
/Volumes/HDD/ActualDataOnHDD

Quindi azioni cartella.

Se qualche dato viene memorizzato in /Volumes/SSD/Data in base alla sua dimensione e sposta in una delle due cartelle.

Se alcuni dati vengono memorizzati in /Volumes/SSD/ActualDataOnSSD o /Volumes/HDD/ActualDataOnHDD , crea un link simbolico per loro in /Volumes/SSD/Data .

Questo sembra soddisfare le tue necessità, tuttavia ho grandi preoccupazioni quando si tratta di salvare un file che viene spostato.

    
risposta data 26.02.2014 - 16:41
fonte
0

Prova ad usare un comando come questo:

ln -s /dir2/* /dir1

ln salta i file esistenti sulla destinazione e non ricrea i link simbolici esistenti.

Per eseguire il comando quando /dir2/ è modificato, salva ad esempio questo plist come ~/Library/LaunchAgents/some.label.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>some.label</string>
  <key>ProgramArguments</key>
  <array>
    <string>bash</string>
    <string>-c</string>
    <string>ln -s /dir2/* /dir1</string>
  </array>
  <key>WatchPaths</key>
  <array>
    <string>/dir2/</string>
  </array>
</dict>
</plist>

Esegui launchctl load ~/Library/LaunchAgents/some.label.plist .

    
risposta data 26.02.2014 - 16:40
fonte

Leggi altre domande sui tag