El enlace simbólico a un directorio da resultados diferentes ls -l
dependiendo de si yo ln -s dir
o ln -s dir/
. Pero, ¿cuál es la diferencia real, y cuál debería preferir por qué?
30
No hay diferencia (Habría una diferencia si el objetivo no fuera un directorio existente).
La barra final podría haber terminado allí debido a la finalización del shell: con alguna configuración, ln -s tar
TabSpacelink
completa a ln -s target/ link
.
foo -> bar/
entoncesfoo/qux
es equivalente abar//qux
. Si bien el título de la pregunta, formalmente hablando, no incluyefoo -> bar/
, también discuto ese caso en mi respuesta allí.Lo único que se me ocurre es que te "protege" de que alguien elimine el directorio y cree un archivo.
La versión con la barra se rompe cuando el destino se reemplaza con un archivo.
fuente
Pregunta interesante He hecho una pequeña prueba:
Como puede ver, no hay diferencia en el número de llamadas al sistema (al menos para ls) y el seguimiento se ve muy similar. Sin embargo, esto es solo una prueba de volcado y no estoy seguro, puede haber algunas diferencias.
fuente
Su pregunta es realmente sobre el comportamiento del
ls
programa.1) Si lo haces
ls -l $dir
donde $ dir es en realidad un enlace simbólico, obtienes información sobre el enlace simbólico.2) Si lo hace
ls -lL $dir
donde $ dir es un enlace simbólico a un directorio, obtendrá información sobre el directorio de destino.3) Si lo hace
ls -l $dir/.
, obliga a seguir el enlace simbólico y proporciona información sobre el directorio de destino.4) Si lo hace
ls -l $dir/
, los resultados pueden ser los mismos que # 1 o pueden ser los mismos que # 3 dependiendo de la versión quels
se esté utilizando. Estaba acostumbrado a que una versión anterior de Solaris lo hiciera como # 1 y me sorprendió que Linux lo hiciera como # 3.Sin la barra diagonal final si le preocupa si un nombre de directorio dado es un directorio real versus un enlace simbólico a un directorio.
Con la barra diagonal final si está más preocupado por los archivos en el directorio en lugar del directorio en sí.
fuente