Sto cercando di emulare il processo di risoluzione del percorso (vedi la pagina man path_resolution) in sistemi unix-like.
Il mio sistema operativo è Linux con core GNU 8.7.
Al fine di chiarire il significato di extra / "in risoluzione", ho fatto le seguenti cose in una shell:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link
Tutto andava bene, perché this_is_link è un link simbolico e l'ho rimosso. Ma mentre provi:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link/
Echeggiò rm: cannot remove 'this_is_link/': Is a directory
Bene, il finale "/" ha causato il seguito di symlink, ho pensato. Quindi, ho provato un altro comando:rmdir this_is_link/
E un risultato divertente è venuto fuori: rmdir: failed to remove 'this_is_link/': Not a directory
Non è quello che mi aspettavo. Quindi ho chiesto al mio amico di confermare se si potesse ottenere lo stesso risultato sul suo sistema. Aveva una versione inferiore di coreutils di me. E il risultato è stato sorprendente, non importa rm
o rmdir 'this_is_link/'
, si Not a directory
verifica lo stesso errore .
E un altro amico lo ha appena provato sul suo Mac OS, il risultato è: rm
=> 'È una directory', rmdir
=> la directory è stata cancellata con successo, il collegamento è rimasto .
Ci sono delle specifiche sull'esatto comportamento della risoluzione del percorso?