Ini hanyalah pertanyaan kosa kata, tetapi yang terus berputar di kepala saya.
Itu berasal dari ujian praktek dari buku persiapan LPIC . Jawaban yang benar menurut buku ini ~/Documents
adalah direktori relatif karena relatif terhadap direktori home.
Namun, buku ini berisi rasio kesalahan penulisan dan kesalahan yang terhormat sehingga saya tidak bisa menerima begitu saja semua yang ditulis di sana. Di sini saya tidak setuju karena bagi saya ~
bertindak sebagai variabel yang diperluas oleh shell menjadi konten $HOME
variabel atau jalur direktori home user saat ini (lih. man bash
), Jadi path sebenarnya adalah /home/myuser/Documents
yang memang merupakan direktori absolut.
Bahkan Wikipedia , untuk sekali ini, tampaknya tidak membantu saya mengenai topik ini (bahkan jika tampaknya mengkonfirmasi bahwa buku ini salah dalam hal ini):
Path absolut atau penuh menunjuk ke lokasi yang sama dalam sistem file terlepas dari direktori kerja saat ini. Untuk melakukan itu, itu harus berisi direktori root.
Sebaliknya, path relatif dimulai dari beberapa direktori yang diberikan, menghindari kebutuhan untuk menyediakan path absolut penuh.
Di sini sekali lagi, saya tidak setuju: menurut definisi ini, jalur /opt/kde3/bin/../lib
yang tidak bergantung pada direktori kerja saat ini haruslah yang absolut, namun pemahaman saya saat ini cocok dengan penulis buku yang membuat jalur ini relatif.
Pencarian web cepat hanya menambah frustrasi saya, menurut Kamus Webster :
path absolut - Jalur relatif ke direktori root. Karakter pertamanya harus menjadi pemisah pathname.
Jadi $HOME/Documents
, atau bahkan $HOME
tidak akan dianggap direktori absolut? Atau apakah definisi ini menyiratkan ekspansi variabel? Bagaimana dengan ~
karakter shell ? Apakah ada definisi relatif relatif terhadap direktori absolut yang dapat saya temukan di suatu tempat dan apakah saya salah?
~/foo
jalur relatif. Apa yang Anda maksudkan adalah perbedaan antara hard-coding dan parameterisasi. Lihat jawaban saya untuk lebih jelasnya.
~/Documents
dan $HOME/Documents
bukan jalur. Mereka mengidentifikasi jalur (absolut) setelah ekspansi, tetapi mereka bukan jalur itu sendiri. Saya pikir itu setuju dengan berapa banyak pengguna Unix / Linux menggunakan istilah ini, tetapi tidak diragukan lagi string itu juga disebut jalur itu sendiri.
/
, dan yang kita sebut absolut. Dengan demikian segala apa yang dimulai dari/
saya sebut mutlak (bahkan jika ini adalah/usr/../etc
) dan segala sesuatu yang lain yang saya sebut relatif (~/Doc
,Doc
,../john/Doc
,$HOME/...
, ...). Intinya adalah bahwa absolut harus berfungsi terlepas dari direktori kerja saat ini atau pengguna saat ini. Relatif hanya dapat bekerja dalam beberapa kasus sempit tertentu.