Saya memahami gagasan tentang hardlink dengan sangat baik, dan telah membaca halaman manual untuk alat dasar seperti cp--- dan bahkan spesifikasi POSIX terbaru --- beberapa kali. Namun saya masih terkejut melihat perilaku berikut:
$ echo john > john
$ cp -l john paul
$ echo george > george
Pada titik ini johndan paulakan memiliki inode (dan konten) yang sama, dan georgeakan berbeda dalam kedua hal. Sekarang kita lakukan:
$ cp george paul
Pada titik ini saya berharap georgedan paulmemiliki nomor inode yang berbeda tetapi konten yang sama --- harapan ini terpenuhi --- tetapi saya juga diharapkan paulsekarang memiliki nomor inode yang berbeda dari john, dan untuk johnmasih memiliki konten john. Di sinilah saya terkejut. Ternyata menyalin file ke jalur tujuan pauljuga memiliki hasil menginstal file yang sama (inode yang sama) di semua jalur tujuan lain yang berbagi paulinode. Saya berpikir untuk cpmembuat file baru dan memindahkannya ke tempat yang sebelumnya ditempati oleh file lama paul. Sebaliknya apa yang tampaknya dilakukan adalah membuka file yang ada paul, memotongnya, dan menulisgeorgeKonten ke dalam file yang ada. Karenanya setiap file "lain" dengan inode yang sama mendapatkan konten "mereka" yang diperbarui secara bersamaan.
Oke, ini adalah perilaku sistematis dan sekarang setelah saya tahu untuk mengharapkannya, saya bisa mencari cara untuk mengatasinya, atau mengambil keuntungan darinya, jika perlu. Apa yang membingungkan saya di mana saya seharusnya melihat perilaku ini didokumentasikan? Saya akan terkejut jika itu tidak didokumentasikan di suatu tempat di dokumen yang sudah saya lihat. Tetapi ternyata saya melewatkannya, dan sekarang tidak dapat menemukan sumber yang membahas perilaku ini.