Estoy tratando de emular el proceso de resolución de ruta (consulte la página de manual path_resolution) en sistemas similares a Unix.
Mi sistema operativo es Linux con GNU coreutils 8.7.
Para aclarar el significado de '/' adicional en resolución, hice lo siguiente en un shell:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link
Todo estuvo bien, porque this_is_link es un enlace simbólico, y simplemente lo eliminé. Pero al intentarlo:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link/
Se hizo eco rm: cannot remove 'this_is_link/': Is a directory
Bueno, el final '/' causó el seguimiento del enlace simbólico, pensé. Entonces, probé otro comando:rmdir this_is_link/
Y salió un resultado divertido: rmdir: failed to remove 'this_is_link/': Not a directory
No es lo que esperaba. Entonces le pedí a mi amigo que confirmara si se podía obtener el mismo resultado en su sistema. Tenía una versión de coreutils más baja que yo. Y el resultado fue sorprendente, no importa rm
o rmdir 'this_is_link/'
, se Not a directory
produce el mismo error .
Y otro amigo acaba de probarlo en su Mac OS, el resultado es: rm
=> 'Es un directorio', rmdir
=> el directorio se eliminó con éxito, el enlace permaneció .
¿Hay alguna especificación sobre el comportamiento exacto de la resolución de ruta?