Ingin tahu di mana jalur yang terlihat seperti ini '/../' akan menunjuk ke luar file? Saya menduga itu mungkin sesuatu seperti selalu menentukan direktori root dan kemudian direktori induk relatif ke file yang ditulisnya?
filesystems
path
Eugene Lai
sumber
sumber
/../
hanya bermakna jika berada dalam jalur.Jawaban:
Mari kita memecah
/../
sepotong demi sepotongYang pertama
/
menunjukkan akar dari sistem file Ini adalah level paling atas dari sistem file..
artinya folder induk Namun, karena kita berada di level paling atas, kita tidak bisa naik lebih tinggi, jadi kita masih berada di folder paling atasmenambahkan
/
pada bagian akhir menunjukkan folder. Ini tidak pernah wajib, kecuali menentukan path atau file subfolder. Jadi kita masih berada di folder paling atas pada sistem file.Jadi,
/../
tidak ada bedanya dengan mengetik/
sumber
/example
symlink ke direktori,ls -l /example
akan menampilkan symlink, sedangkanls -l /example/
akan menampilkan isi direktori.cd ../abc
mana../
membuat perbedaan. Saya kira itu hanya berguna untuk jalur relatif, bukan untuk jalur absolut.../
dapat memiliki efek untuk jalur absolut:/foo/bar/../quux
=/foo/quux
. Beberapa contoh yang lebih berguna: 1) menyadari Anda baru saja menyelesaikan nama direktori yang sangat panjang, tetapi itu bukan yang Anda inginkan.../
mungkin lebih cepat daripada mundur 50 kali. 2)foo=/long/absolute/path/to/foo; bar=$foo/../bar;
..
jalan keluar jika menerapkanchroot
sebagai penjara sejelas menutup pintu gudang untuk menjaga hewan-hewan di; Anda tidak ketinggalan kasus seperti itu: jalan keluar yang paling jelas. Itu membuat saya curiga bahwachroot
implementasi awal mungkin tidak memiliki inescapability sebagai persyaratan .