¿Cómo funcionan los enlaces simbólicos en Dropbox?

20

Hice algunos enlaces a archivos en una carpeta. Cuando agregué esa carpeta a Dropbox, los enlaces contenían copias duplicadas de los archivos vinculados. ¿Has tenido este problema? ¿Entiendes lo que está pasando? ¿Hay una solución?

Para aclarar esta pregunta: en la columna "tipo" del administrador de archivos, antes de conectarse a Dropbox, se mostró que Link_to_notes era un enlace y el tamaño era de 32 bytes. Después de conectarse a Dropbox, se mostró que Link_to_notes era un documento de texto sin formato y el tamaño era de 18.7 kB, el tamaño del archivo de notas.

usuario119046
fuente
2
Dado que Dropbox es una solución multiplataforma, cualquier otro comportamiento probablemente sería aún más confuso: ¿cómo se comportaría si sincroniza su carpeta con una máquina Windows?
Sergey
Desde mediados de 2019, Dropbox ya no sigue los enlaces simbólicos
desde el
A partir de la escritura actual, los enlaces simbólicos ya no funcionan, y apesta.
Jus12

Respuestas:

15

DropBox sigue enlaces simbólicos y los trata como directorios. Es realmente útil para realizar copias de seguridad sin tener que mover archivos y directorios a su directorio de DropBox.

$ ln -s ~/Documents/ ~/Dropbox/Documents
Gregología
fuente
Esto podría ser un comportamiento peligroso. Por ejemplo, si elimino el enlace del directorio de Dropbox, ¿hay alguna posibilidad de que también pueda eliminar accidentalmente mis archivos o carpetas originales?
Vicon
@Vicon, ese no es un comportamiento peligroso, ese es el comportamiento esperado. Pero sí, para ser claros, si eliminas el enlace simbólico, los archivos también se eliminarán de Dropbox
Gregology
2
En la comunidad de Dropbox, se ha afirmado una y otra vez que Dropbox no admite enlaces simbólicos y desaconseja su uso. Si contacta al servicio de atención al cliente de Dropbox, le pedirán que elimine cualquier enlace simbólico antes de continuar. Claro, la gente todavía puede usarlo, pero este no es un comportamiento previsto por Dropbox, y puede ser peligroso (perder archivos), problemático (tener archivos duplicados sincronizados involuntariamente, que es el problema que se debe resolver en esta pregunta) como problemas de sincronización de rendimiento, etc.
Vicon
@Vicon, los enlaces simbólicos funcionan de manera transparente para muchas operaciones: los programas que leen o escriben en archivos nombrados por un enlace simbólico se comportarán como si operaran directamente en el archivo de destino
Gregology
1
Este método me ha funcionado bien durante mucho tiempo en los sistemas de archivos ext4. No tengo ningún sentimiento de peligro porque nunca interactúo con los archivos de Dropbox dentro de Dropbox. Logra vincular mis sistemas Linux y tabletas Android. Sin embargo, noto que este enlace dice que mi consejo está desactualizado help.dropbox.com/installs-integrations/sync-uploads/symlinks
pauljohn32
7

La mejor manera de hacerlo es almacenar los archivos en la carpeta de Dropbox y vincularlos desde afuera ...

Así que cree ~ / Dropbox / Documentos y enlace simbólico:

ln -s ~/Dropbox/Documents ~/Documents

Esto evita que Dropbox se confunda y desvincula cualquier cosa que sea un enlace dentro porque tiene todas las cosas dentro y, en cambio, cuando las quiere en otro lugar, las vincula a Dropbox. La regla básica es no tener enlaces simbólicos en ningún lugar dentro de la carpeta de Dropbox ... tenerlos fuera de la carpeta de Dropbox y no tendrás ningún problema.

Tengo Dropbox en varias máquinas ubuntu y tengo todas mis carpetas principales de nivel superior realmente almacenadas en Dropbox.

JamesC
fuente
¿Por qué se confundiría Dropbox? ¿Y cómo Dropbox alteraría los enlaces simbólicos? Los enlaces simbólicos se resuelven automáticamente por el sistema de archivos
Gregology
6

dropbox seguirá los enlaces sym a los directorios, pero romperá un enlace (ya sea sym o hard) a un archivo y lo reemplazará con un archivo.

brad80242
fuente
2

TL; DR: a continuación se muestra una forma de obtener un comportamiento bastante similar a los enlaces simbólicos, solo en el nivel de la interfaz gráfica de usuario (GUI), lo que es especialmente útil si no desea que DropBox copie repetidamente los mismos archivos en diferentes carpetas dentro de DropBox jerarquía solo porque desea verlos desde diferentes lugares (es decir, rutas de carpetas).

Antecedentes

Más de una vez me han quemado las carpetas duplicadas de DropBox si creo enlaces simbólicos (enlaces simbólicos) dentro de la jerarquía de carpetas de DropBox, incluso hasta el punto de llenar mi cuenta. Como muchos han notado en la web, no existe una solución real para la falta de DropBox de tratar los enlaces simbólicos adecuadamente, lo cual es lamentable ya que no sería difícil para ellos hacerlo.

Solución alterna

Sin embargo, utilizo una solución alternativa para lograr el comportamiento equivalente de los enlaces simbólicos dentro de la jerarquía de DropBox, a lo que otros se refieren como "enlaces simbólicos internos", sin que DropBox duplique todo para crear el equivalente de un archivo de acceso directo de Windows (es decir , un archivo .lnk en el ecosistema MS). Lo hago creando un archivo .desktop que abre el administrador de archivos de mi sistema a la ruta deseada. Por lo tanto, esta solución solo funciona a nivel GUI y solo para sistemas compatibles con XDG (por ejemplo, Ubuntu, sistemas basados ​​en GNOME, muchos otros).

Ejemplo

Por ejemplo, estoy leyendo sobre técnicas avanzadas de Python para un nuevo trabajo que estoy tomando, y los archivos PDF que estoy leyendo se almacenan en mi carpeta DropBox para la aplicación GoodReader (iOS) para que pueda leerlos en mi escritorio y con mis dispositivos móviles En lugar de tener que profundizar en esa carpeta ( /home/morse/lib/active/GoodReader/Books/Python), simplemente creo una Python.desktopcarpeta debajo /home/morse/Desktopcon el siguiente contenido:

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Name=Python
Exec=nautilus /home/morse/lib/active/GoodReader/Books/Python
Icon=/usr/share/icons/MacBuntu-OS/places/96/stock_folder.png
Terminal=false

(Nota: Asegúrese de adaptar la Exec=nautilus ...porción si está utilizando un gestor de archivos Nautilus distinta, y por supuesto tendrá que adaptar el Name=, Icon=y parte de la ruta de la Exec=línea para cada "enlace simbólico" que desea crear.)

Con esto, veo una carpeta llamada Python en mi escritorio que actúa como un enlace simbólico, es decir, hago doble clic y abre la carpeta correspondiente, pero solo un pequeño archivo de texto (por ejemplo, Python. escritorio) se sincroniza con DropBox y mis otros sistemas (a diferencia de todos los contenidos que finalmente se duplican en todas partes por DropBox).

Al igual que con otros archivos .desktop, los permisos deben establecerse de manera que el archivo sea legible y ejecutable (p. Ej., chmod 700 Python.desktopO chmod 755 Python.desktop) para que se muestre el icono indicado y para hacer doble clic en él para hacer cualquier cosa.

Resumen

En resumen, siempre tendré los archivos reales disponibles en algún lugar dentro de DropBox --- en este ejemplo, /home/morse/lib/active/GoodReader/Books/Python--- pero también tendré un "acceso directo" de escritorio en todos mis sistemas basados ​​en Linux para los cuales también tiene DropBox configurado.

Por supuesto, esta solución alternativa no funciona en el nivel de línea de comandos, como lo haría un verdadero enlace simbólico.

Dicho esto, esto parece ser una nueva solución a nivel de GUI, una que no he visto publicada en otro lugar. Entonces, espero que este enfoque pueda ser útil para otros.

Doug Morse
fuente
Esto es genial! ¡No he visto una solución para enlaces simbólicos internos hasta ahora! Y esto es súper ordenado. ¡Gracias por hacerme el día! Debo agregar que debería ser bastante sencillo crear un script de línea de comandos, que analice un archivo .desktop y abra el archivo o la carpeta que está enlazada, aunque es posible que no pueda "cd" en el directorio directamente.
Praveen
0

Comprime tus enlaces y guarda el archivo comprimido en Dropbox

Las respuestas anteriores son exhaustivas y claras. Solo sugiero tres soluciones alternativas, basadas en un solo principio. El tercero parece más difícil pero es muy eficiente. La idea es: comprime tus enlaces simbólicos en un archivo tar, que Dropbox no tratará como un enlace, y guárdalo en Dropbox. La tercera forma es casi tan directa como copiar sus enlaces directamente a su Dropbox, en realidad mucho más rápido que copiar varios enlaces uno por uno.

Tengo unos veinte enlaces simbólicos que normalmente uso en mi instalación de Lubuntu, por ejemplo, para acceder rápidamente a los scripts de bash guardados en Dropbox, a discos duros externos, a documentos de uso frecuente, etc. Todos están en mi directorio de inicio y en el Escritorio y lo encuentro es conveniente tener una copia de Dropbox para usar en otras instalaciones o cuando realizo la actualización (es decir, cuando reinstalo después de intentar la actualización;).

1er camino

Usted crea un directorio llamado MyLinks (digamos, en Documentos) y copia todos los enlaces simbólicos de su hogar; Si tiene enlaces simbólicos en otros directorios, haga subdirecciones en MyLinks y copie sus enlaces simbólicos en ellos. Por ejemplo, si los enlaces que desea guardar están en la página de inicio y en el Escritorio, copie los enlaces de la página de inicio a MyLinks, cree un directorio llamado Escritorio y copie los enlaces del Escritorio en él. Luego abra una Terminal, Documentos de CD (siempre que este sea el directorio donde está MyLinks) y cree un archivo tar:

tar -cvf MyHomeLinks.tar MyHomeLinks

(Recuerde agregar la extensión ".tar" al nombre del archivo tar, o Ubuntu Archive Manager se negaría a abrirlo). Si hace esto, tenga cuidado de no agregar la opción -h (- referencia) a tar porque precisamente se comportaría como Dropbox y comprimiría los archivos de destino en lugar de los enlaces simbólicos. (Por cierto, tal comportamiento sería bienvenido en la mayoría de los casos, especialmente si uno apunta a la portabilidad, pero no lo es si uno quiere guardar los enlaces simbólicos como enlaces simbólicos).

El archivo tar también incluiría enlaces que se rompen temporalmente, como enlaces a discos duros externos que actualmente no están montados, lo cual está bien.

Guarde el archivo tar en su Dropbox. Cuando necesite volver a los enlaces, copie el archivo tar en un directorio de su sistema de archivos (no dentro de Dropbox), extráigalo (simplemente haga clic con el botón derecho y elija "Extraer aquí") y copie sus enlaces simbólicos a las ubicaciones donde los desea .

2da forma

Si los enlaces simbólicos que desea guardar tienen un prefijo unívoco (como "MySl" ...) puede crear rápidamente su tarfile de esta manera (se agregan espacios innecesarios para evitar errores):

find   .   -name   "MySl*"|xargs  tar  cvf  MyLinks.tar

El único punto después de "buscar" significa el directorio actual: abra la Terminal en su directorio de inicio (como por defecto). Seguramente puede agregar una ruta al archivo tar y puede emitir el comando desde otro directorio que no esté en casa: reemplace el "." con el camino a su hogar / usuario. No es necesario hacer directorios de trabajo como MyLinks arriba. La restauración de los enlaces simbólicos también es rápida: copie el archivo tar en su casa, haga clic derecho sobre él y "extraiga aquí". Sin embargo, antes de comenzar a prefijar todos los nombres de sus enlaces simbólicos, eche un vistazo a la siguiente opción.

3ra forma (y mejor)

Una forma muy rápida de recopilar todos sus enlaces simbólicos en un archivo tar es: abra una Terminal en su hogar / usuario (que es la opción predeterminada cuando abre una Terminal) y:

find  .  -type  l|xargs  tar  -cvf  AllLinks.tar

El inconveniente es que obtienes TODOS tus enlaces, incluidos algunos enlaces simbólicos de mozilla o hplip que ni siquiera sabías que tenías. Para evitar esto y copiar todos y solo los enlaces simbólicos de una lista específica de directorios sin recurrencia , escriba la lista después de "buscar" en el comando anterior. Supongamos que desea guardar los enlaces desde casa / usuario y escritorio; puedes escribir

 find /home/<USER>/ /home/<USER>/Desktop/ -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar

"-maxdepth 1" es para evitar que el hallazgo vuelva a aparecer en casa. Puede agregar una ruta a tarfile si lo desea. Alternativamente:

 find .  Desktop -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar

Si eres perezoso y quieres usar esto a menudo, puedes agregarlo como un alias a .bashrc o .bash_aliases en tu directorio de inicio (.bash_aliases es una forma muy conveniente de recopilar tus alias y, por qué no, guardarlos en Dropbox ...). Simplemente cree un nuevo archivo vacío llamado .bash_aliases en su directorio de inicio (es decir, / home / user), ábralo con un editor de texto y escriba la siguiente línea:

alias save_symlinks='find . Desktop -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar'

Reemplace los directorios después de "buscar" con los que elija y "save_symlinks" con un nombre de comando de su elección. Para restaurar, abra su Administrador de archivos (si la ruta a los directorios en el comando anterior no es absoluta, el archivo tar debe estar en inicio / usuario), haga clic derecho y extraiga.

Si haces esto, la vida es más fácil. Todo lo que tienes que hacer es:

GUARDAR: escriba save_symlinks en la Terminal, guarde el archivo tar en su casa en Dropbox; RESTAURAR: copie el archivo de Dropbox en su directorio de inicio, haga clic derecho sobre él y seleccione "extraer aquí".

archie
fuente