¿Cuál es la diferencia entre un enlace simbólico y un acceso directo?
windows
shortcuts
symbolic-link
deepthi tm
fuente
fuente
Respuestas:
Creo que el punto importante es que los accesos directos son solo un archivo. Tienen un tamaño (uno pequeño, que solo hace referencia a dónde apuntan) y requieren una aplicación que admita ese tipo de archivo para poder usarse.
Un enlace simbólico es el nivel del sistema de archivos, y todo lo ve como el archivo original. Una aplicación no necesita soporte especial para usar un enlace simbólico.
fuente
find
,tar
,du
, etc) no necesita saber acerca de los vínculos simbólicos o pueden hacer algunas cosas muy estúpidas. Por ejemplo cegadora siguientes enlaces simbólicos pueden crear ciclos en el sistema de archivos, y eso es malo .Un "Enlace simbólico" en realidad puede actuar como un sustituto de un directorio o archivo de una manera funcional, y se usa comúnmente en entornos Unix / Linux. Aunque aparentemente hay soporte para esto en Windows, todavía no he visto ningún uso real.
Un "acceso directo" es solo un archivo normal que tiene una referencia al archivo o directorio de destino junto con algunas otras cosas como el icono que se mostrará. A diferencia de un enlace simbólico, no puede "cd ./shortcut-name" en DOS (en Unix / Linux puede "cd ./symlink-name" y funcionará como un subdirectorio real).
Además, en la mayoría de las aplicaciones de Windows, cuando hace clic en un acceso directo en cualquier diálogo Archivo-> Abrir GUI, su campo de nombre de archivo se llena con el nombre de archivo de ese acceso directo y actúa como un subdirectorio, mientras que en Unix / Linux la GUI trata un enlace simbólico como ruta (sin modificar el campo del nombre de archivo).
fuente
Como otros han mencionado, un enlace simbólico es uno de los tipos de enlaces disponibles en el nivel del sistema de archivos, lo que lo hace transparente para las aplicaciones. He encontrado esta documentación muy útil (especialmente la sección "Recortar / Desenrollar / Empalmar uniones externas / Enlaces simbólicos"). Y la herramienta allí también se ve bien. (Al mencionar esto y mklink, espero que más búsquedas encuentren esta discusión).
Un acceso directo es un archivo, no un enlace real, y generalmente solo se sigue con éxito como un enlace cuando la interfaz de usuario (interfaz de usuario) de Windows lo interpreta. Por ejemplo, cuando hace doble clic en el acceso directo de una carpeta, Windows lo redirige a esa otra ubicación. (Esto incluye los cuadros de diálogo genéricos Abrir archivo y Guardar archivo que invocan la mayoría de las aplicaciones). En mi escritorio, tengo un acceso directo a esta carpeta: C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ G
El nombre de archivo del shorcut es: C: \ Users \ user5 \ Desktop \ Games.lnk, aunque Windows suprime la extensión .lnk y solo muestra "Juegos", incluso si desmarca "ocultar extensiones para tipos de archivos conocidos". Pero si abre un símbolo del sistema y hace un directorio, lo verá:
Puedo crear el equivalente con un enlace simbólico usando la opción \ D (para el directorio):
(Una unión de directorio (\ J) también es una opción, ya que este es un enlace de carpeta). El explorador de Windows, al igual que esta consola y la mayoría de las aplicaciones, le permitirá navegar "hacia abajo" en este subdirectorio aparente, en lugar de (a) redirigir "cruzado" a una ubicación diferente o (b) fallando.
Los atajos no se comportan como subdirectorios. Puedo invocar el comportamiento del archivo predeterminado de la IU de Windows con este comando (esto abre la carpeta "G" en el Explorador de Windows):
Mientras que mysymlink aparece en la lista (ver el recuento) como un verdadero subdirectorio y no se puede iniciar de esa manera:
Por el contrario, no puede cambiar el directorio en un acceso directo:
La IU de Windows le permite hacer clic con el botón derecho para editar las propiedades de un acceso directo. O, lo siguiente muestra exactamente lo que está realmente almacenado en el archivo .lnk (datos binarios), aunque un editor hexadecimal se vería mejor:
Mientras que al intentar ejecutar el Bloc de notas en una subcarpeta real aparece un mensaje de error "Acceso denegado" y un Bloc de notas vacío.
Por el contrario, si hago un enlace simbólico de archivo (no un enlace simbólico de carpeta), puedo iniciarlo con el Bloc de notas. De las siguientes llamadas a notepad.exe, las dos primeras funcionan y la tercera falla (abre el archivo .LNK, el binario gobbledegook).
Esto no es solo una cosa de consola. Al copiar un acceso directo al Bloc de notas en mi escritorio e intentar arrastrar y soltar cada uno de los tres, muestra exactamente el mismo comportamiento. (Debido a que arrastrar y soltar, a diferencia del doble clic, permite que la aplicación interprete el acceso directo).
Con respecto a las diferencias entre enlaces simbólicos y uniones de directorio, vea esta discusión , y aquí hay una descripción muy útil :
"Una diferencia importante en la forma en que Windows resuelve enlaces simbólicos y uniones de directorio es donde tiene lugar el procesamiento. Windows procesa enlaces simbólicos en el sistema local, incluso cuando hacen referencia a una ubicación en un servidor de archivos remoto. Windows procesa uniones de directorio que hacen referencia a un control remoto servidor de archivos en el servidor en sí. Por lo tanto, los enlaces simbólicos en un servidor pueden referirse a ubicaciones a las que solo se puede acceder desde un cliente, como otros volúmenes de clientes, mientras que las uniones de directorio no. Para solucionar esto, Windows Vista admite el nuevo tipo de enlace simbólico para ambos archivos y directorios.
"Muchos comandos del sistema de archivos se han actualizado para comprender las implicaciones de los enlaces simbólicos. Por ejemplo, el comando Eliminar sabe que no debe seguir los enlaces, lo que daría como resultado la eliminación del destino, sino eliminar el enlace. Sin embargo, porque no todas las aplicaciones puede manejar enlaces simbólicos correctamente, crear un enlace simbólico requiere el nuevo privilegio Crear enlace simbólico que solo los administradores tienen por defecto ".
fuente
Fuente: http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html
fuente
A veces es bueno tener un ejemplo funcional, así que explicaré cómo uso esta función.
Uso Google Drive para hacer una copia de seguridad de los archivos, pero a veces quiero hacer una copia de seguridad de los archivos en una carpeta específica (no puedo moverlos a ../google drive). Especialmente con las aplicaciones universales de Windows 10, los archivos de configuración y demás se almacenan en los datos de aplicación, y la mayoría de las veces no puedo cambiar esta ubicación.
Utilizo la aplicación stikynot nativa de Windows y quería hacer una copia de seguridad de mis notas, así que utilicé un enlace simbólico aquí. Google Drive reconoce el enlace como un archivo real y sincroniza los archivos perfectamente, mientras que el archivo real todavía está en la carpeta de datos de aplicación.
Cuando tengo archivos como carpetas de proyectos localmente que no quiero sincronizar con la nube, uso accesos directos (copiar, pegar-> pegar acceso directo).
fuente