Ok, ini membuat saya membenturkan kepala. Di OS X, untuk membuat tautan keras, di jendela terminal, Anda seharusnya bisa mengetikkan ini ...
ln a.txt b.txt
... dan ini harus membuat tautan keras dari a.txt
ke b.txt
. Sederhana dan lurus ke depan.
Ketika saya menjalankan pernyataan itu, tentu saja, di Finder b.txt
muncul tepat di sebelahnya a.txt
. Namun, bahkan setelah diedit a.txt
menggunakan TextEdit, b.txt
masih memiliki data asli! Dengan kata lain, sepertinya itu dilakukan salinan, bukan tautan, keras atau sebaliknya.
Tidak masuk akal bagiku! Jadi bisakah seseorang memberi tahu saya apa yang saya lakukan salah di sini?
osx-snow-leopard
hardlink
Mark A. Donohoe
sumber
sumber
Jawaban:
Alasan untuk perilaku ini agak mudah, dan ini berkaitan dengan bagaimana file disimpan di sebagian besar aplikasi Mac OS X: Secara atomis.
Apa yang terjadi adalah bahwa salinan file ditulis ke area pementasan sementara, dan kemudian dipindahkan untuk mengganti file asli.
Ini, tentu saja, mematahkan hubungan yang sulit.
sumber
vi
- tidak cukup untuk mengatur izin menulis pada file, Anda juga memerlukan folder!Jika muncul, lihat entri ini dari superuser , bahwa ini adalah fitur dari TextEdit. Jadi, metode normal untuk membuat tautan keras benar, tetapi TextEdit berperilaku sedemikian rupa untuk memecahkan ini. (Tautan tersebut mengatakan bahwa ia membuat file baru dan kemudian memindahkannya ke file lama setelah diedit.)
sumber
Perhatikan bahwa emacs juga menunjukkan perilaku (mengejutkan!) Ini secara default (di semua unix), mengira penyebabnya sedikit berbeda (itu adalah "aman" untuk dilakukan dalam situasi ruang disk yang sangat rendah). Namun, dapat dikonfigurasi dalam beberapa cara.
Lihat dokumentasi untuk
make-backup-files
(gunakanC-h v make-backup-files
) dan untukbackup-by-coping
backup-by-coping-when-linked
backup-by-coping-when-mismatch
backup-by-coping-when-privileged-mismatch
sumber