Apa perbedaan antara jalur absolut / kanonik / relatif?
Saya kira absolut itu dimulai dengan /
. Bisakah itu berisi /../
?
Apakah jalur kanonik berbeda dari jalur absolut karena tidak boleh berisi /../
?
Apakah foo
jalur relatif?
Googling posix canonical path
tidak banyak muncul… Apa referensi POSIX untuk istilah-istilah ini?
Jawaban yang Diterima:
POSIX mendefinisikan "nama path absolut" sebagai berikut:
Nama path yang dimulai dengan satu atau lebih dari dua
karakter
dan “nama path relatif” sebagai berikut:
Nama path yang tidak diawali dengan karakter
.
Itu saja untuk jalur relatif dan absolut.
Jalur kanonik tidak ditentukan dalam POSIX, tetapi istilah tersebut biasanya mengacu pada jalur yang sebanding, yaitu jika Anda mengambil dua jalur ke objek sistem file, dan mengonversinya ke bentuk kanonik, hasilnya akan sama jika dan hanya jika kedua objek sistem file identik. Ini melibatkan penghapusan ".." seperti yang Anda sebutkan, tetapi itu juga berarti menyelesaikan tautan simbolik; jadi jalur kanonik dapat didefinisikan sebagai
Nama path yang semua komponennya adalah direktori atau file nyata, tidak termasuk "." dan “..”, dan garis miringnya tidak diulang
Dalam istilah POSIX, nama jalur kanonik secara efektif merupakan nama jalur yang diselesaikan (selama Anda menerima bahwa nama jalur kanonik hanya dapat ditentukan untuk objek sistem file yang ada).
Perhatikan bahwa ini hanya berfungsi karena direktori tertaut tidak diizinkan…
Jadi untuk menjawab pertanyaan Anda:
- jalur absolut dapat berisi
/../
; - jalur kanonik tidak boleh berisi
/../
, juga tidak boleh berisi/./
,//
(kecuali bisa dibilang di posisi pertama), atau tautan simbolik; foo
adalah jalur relatif.
(Secara berlebihan, mereka semua adalahnamajalur , bukan hanya jalur.)