0 votos

OS X: ¿Crear una carpeta como "extensión" de otra, al estilo de Symlink?

Tengo dos carpetas en dos volúmenes diferentes:

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

En la segunda carpeta pongo los archivos y carpetas grandes para que no ocupen todo el espacio del SSD. Para tener todo en un solo lugar creo enlaces simbólicos de la primera a la segunda carpeta, así:

/Volumes/SSD/my-important-folder/big-file es un enlace simbólico a /Volumes/HDD/my-extension-of-important-folder/big-file

Esto es útil porque los archivos grandes se almacenan en el disco duro, pero están disponibles como si estuvieran almacenados en la unidad de estado sólido. Pero esto tiene la desventaja de que tengo que crear un enlace simbólico para cada archivo o carpeta que añado a la carpeta en el disco duro.

Sería realmente útil si pudiera decirle al SO: si llamo a un archivo que no está en /Volumes/SSD/my-important-folder , por favor, búsquelo en /Volumes/HDD/my-extension-of-important-folder .

La carpeta en el HDD sería entonces una extensión real de la carpeta en el SSD.

¿Se puede hacer esto? Estoy ejecutando OS X 10.9.1

3voto

Lasse Puntos 1000

Que yo sepa, no se puede hacer eso directamente, pero no sé si entiendo por qué querrías hacerlo.

¿Por qué no se hace un enlace simbólico con el todo carpeta y no preocuparse por ello en el futuro?

Si es importante para usted que sólo se muevan los archivos grandes al disco duro, podría crear un Carpeta Acción en Automator y ejecutar un bash script que comprobara el tamaño del archivo y en base a eso moviera y creara el symlink automáticamente (asumo que tienes algunos habilidad tecnológica ya que sabe lo que symlink incluso es :) Dicho esto, estaré encantado de publicar instrucciones más detalladas si es necesario).

1voto

Michael Kropat Puntos 3993

Yo lo vería de otra manera.

Yo crearía varias carpetas en el sistema de archivos:

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

A continuación, las acciones de la carpeta.

Si algún dato se almacena en /Volumes/SSD/Data en función de su tamaño y mover a una de las dos carpetas.

Si algún dato se almacena en /Volumes/SSD/ActualDataOnSSD o /Volumes/HDD/ActualDataOnHDD crear un enlace simbólico para ellos en /Volumes/SSD/Data .

Esto parece satisfacer su necesidad, Sin embargo, Tengo gran preocupaciones cuando se trata de guardar un archivo que se está moviendo.

0voto

Intenta usar un comando como este:

ln -s /dir2/* /dir1

ln omite los archivos que existen en el destino, y no recrea los enlaces simbólicos existentes.

Para ejecutar el comando cuando /dir2/ se modifica, guarde por ejemplo este plist como ~/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>

A continuación, ejecute launchctl load ~/Library/LaunchAgents/some.label.plist .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X