Mengapa titik dua ( :
) dipilih sebagai pemisah jalur?
Perhatikan bahwa maksud saya "pemisah jalur" dan bukan "pemisah direktori". Pemisah jalur adalah simbol yang ditempatkan di antara entri dalam PATH
variabel lingkungan.
PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:..."
^ this symbol
Segala sesuatu dalam komputer dan perangkat lunak dulunya merupakan keputusan yang disengaja yang dibuat oleh seseorang di suatu tempat. Misalnya mengapa tilde merepresentasikan dir home (dan mengapa hjkl untuk kunci arah di vi) . Saya suka mengetahui latar belakang keputusan ini.
Beberapa fakta acak:
Memiliki titik dua sebagai pemisah jalur berarti direktori dengan titik dua dalam namanya tidak dapat ditambahkan ke jalur.
dari POSIX:
Karena
<colon>
merupakan pemisah dalam konteks ini, nama direktori yang mungkin digunakan dalam PATH tidak boleh menyertakan<colon>
karakter.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
Tampaknya tidak mungkin untuk melarikan diri dari usus besar. @ Random832 dari Stack Overflow memeriksa kode sumber yang menangani PATH dan tidak menemukan mekanisme melarikan diri.
PATH
sebelum pengenalan Unix Versi 7 (pada 1979) , tetapi ada :
jalur pencarian -diselar pada awal 1977. PWB / Unix (Programmer's Workbench) menggunakan Mashey shell , ditulis oleh John R. Mashey , yang jatuh secara kronologis antara cangkang Thompson dan cangkang Bourne. … (Lanjutan)
p
adalah jalur pencarian (disebut "urutan pencarian direktori Shell untuk eksekusi perintah"), dengan direktori dipisahkan oleh titik dua. ... ... ... ... ... ... ... ... ... ... "..." ... "..." ... "..." ... Fakta ...: Sementara shell Mashey memproses .profile
file, itu juga memungkinkan Anda untuk menentukan $p
nilai awal dalam file yang dipanggil .path
.
/etc/passwd
(yang juga berisi path di kolom home dan shell).