Mengapa cd ..
, diketik di folder root, tidak memperingatkan atau gagal dengan kesalahan?
Saya harapkan:
/$ cd ..
-bash: cd: ..: No such file or directory
Sebaliknya, saya ditinggal di /
. Tentu saja, ini karena ..
memang ada /
, dan hanya /
, seperti .
. Saya hanya ingin tahu mengapa seperti itu.
directory
cd-command
Bach
sumber
sumber
Jawaban:
Menurut Grup Terbuka (bertanggung jawab untuk standar POSIX):
(Sumber)
sumber
Anda tidak mendapatkan kesalahan karena bahkan
/
direktori sebenarnya memiliki entri direktori yang valid..
, tetapi tidak seperti direktori lain, direktori itu menunjuk ke direktori itu sendiri dan dengan demikian berperilaku identik dengan.
:Sebagai kolom pertama memberitahu Anda,
.
,..
, dan/
semua memiliki sama inode-nomor dan dengan demikian entri filesystem yang sama.Jadi, bahkan jika Anda
cd ..
berada di dalam diri/
Anda, tetaplah tinggal/
.sumber
..
entri direktori yang ada./
sama seperti folder lain, termasuk entri yang valid untuk..
. Kalau tidak, Anda harus memperlakukan/
berbeda dibandingkan dengan semua folder lain dalam sistem.Itu ada di sana karena menghapusnya memerlukan pembuatan kode penanganan kasus khusus di kernel dan C library. Saat ini Anda dapat mengasumsikan bahwa akan selalu ada '.' dan '..' di direktori yang Anda kunjungi.
Satu-satunya kode kasus khusus yang diperlukan saat ini adalah dalam kode pemasangan sistem file, di mana kode menimpa nilai inode dari '..' untuk menunjuk ke direktori yang berisi titik mount, karena direktori root tidak selalu direktori root.
sumber
mount
perintah dan file khusus yang terkait/etc/fstab
.Cara lain untuk memeriksa apa
.
dan..
di/
benar-benar:Seperti yang Anda lihat,
.
dan..
ditunjukkan/
.sumber
Alasan lain '..' ada di / adalah bahwa jika tidak ada maka akan membuat kasus khusus lain: direktori root akan memiliki satu hard link lebih sedikit dari semua direktori lain (semua node direktori memiliki n + 2 tautan, di mana n adalah jumlah subdirektori langsung di dalam). Ini akan memecah berbagai program yang mengandalkan untuk mengoptimalkan pemindaian direktori.
sumber
Sangat menyenangkan karena ada di sana, karena kalau tidak, saya tidak akan dapat
../../../../
mengirim spam ke root dari folder. Jika itu tidak memungkinkan..
di root maka saya akan terjebak menghitung jumlah folder di direktori kerja.sumber
cd /
?../
lebih baik. Saya juga melakukan banyak operasi file di PHP, di mana saya tidak dapat melakukannya/
karena beberapa alasan.../
dan mengoperasikan (atau menghapus) file yang tidak Anda inginkan tanpa kesalahan.../
lebih dari yang dibutuhkan dan berharap itu berfungsi sebagaimana dimaksud tampak seperti kesalahan logika (tidak aktif) bagi saya, bahkan jika filesystem tampaknya memungkinkannya.