Saya mencoba untuk meniru proses resolusi jalur (lihat halaman manual path_resolution) dalam sistem seperti unix.
OS saya adalah Linux dengan GNU coreutils 8.7.
Untuk memperjelas arti tambahan trailing '/' dalam resolusi, saya melakukan hal-hal berikut dalam shell:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link
Semuanya baik-baik saja, karena this_is_link adalah symlink, dan saya baru saja menghapusnya. Tetapi saat mencoba:
mkdir this_is_dir
ln -s this_is_dir this_is_link
rm this_is_link/
Itu bergema rm: cannot remove 'this_is_link/': Is a directory
Yah, jejak '/' menyebabkan mengikuti symlink, saya pikir. Jadi, saya mencoba perintah lain:rmdir this_is_link/
Dan hasil yang lucu keluar: rmdir: failed to remove 'this_is_link/': Not a directory
Bukan yang saya harapkan. Jadi saya meminta teman saya untuk mengkonfirmasi apakah hasil yang sama dapat diperoleh pada sistemnya. Dia memiliki versi coreutils yang lebih rendah daripada saya. Dan hasilnya luar biasa, tidak masalah rm
atau rmdir 'this_is_link/'
, kesalahan yang sama Not a directory
terjadi .
Dan teman lain baru mencobanya di Mac OS-nya, hasilnya adalah: rm
=> 'Is a directory', rmdir
=> direktori berhasil dihapus, tautannya tetap ada .
Apakah ada spesifikasi tentang perilaku yang tepat dari resolusi jalur?