Kapan saya harus menggunakan tautan keras sebagai lawan tautan lunak?

10

Saya akan mulai bermain-main dengan mklinktetapi saya masih mencoba untuk mendapatkan pegangan nyata pada semua hal "symlink" ini. Secara khusus, saya perhatikan ada dua jenis tautan - "tautan lunak" dan "tautan keras" - tetapi saya mengalami kesulitan untuk benar-benar memahami perbedaan antara keduanya, atau mengapa saya harus memilih satu di atas yang lain untuk diberikan use case.

Yang paling bisa saya dapatkan sejauh ini adalah ini:

  • Tautan Lunak diperlakukan sebagai petunjuk ke file / folder target.
  • Hard Links diperlakukan seolah-olah mereka sebenarnya adalah file / folder target.

Apa artinya ini dalam hal bagaimana OS dan aplikasi akan memperlakukan tautan? Faktor-faktor apa yang harus dipertimbangkan ketika memutuskan apakah akan menggunakan satu atau yang lain?

Kasus penggunaan saat ini yang saya miliki adalah untuk membuat SkyDrive menyinkronkan file / folder yang berada di luar direktori SkyDrive yang sebenarnya . Namun, saya lebih suka jika jawaban juga dapat mencakup pedoman umum untuk referensi di masa mendatang.

Iszi
sumber

Jawaban:

6

Dimungkinkan untuk memiliki softlink yang menggantung, karena softlink adalah pointer ke file.

Tidak mungkin memiliki hardlink yang menggantung. Setiap file memiliki setidaknya satu hardlink, yaitu entri direktori di sistem file. Jadi, jika Anda membuat file, dan kemudian hardlink untuk itu, dan kemudian menghapus file asli, hardlink tidak akan terpengaruh.

Karena itu, hardlink dapat membuat Anda percaya ketika Anda telah menghapus file yang benar-benar hilang, meskipun kecuali Anda menghapus SEMUA hardlink, file tersebut akan tetap ada. Sebagian besar waktu Anda ingin menggunakan softlink kecuali Anda ingin memanfaatkan aspek khusus dari hardlink ini.

LawrenceC
sumber
Jadi, interpretasi metaforis yang tepat adalah bahwa tautan lunak hanyalah jalan pintas file sedangkan tautan keras adalah salinan file yang disinkronkan?
Iszi
Yah ... perlu diingat bahwa hardlink tidak benar-benar membuat salinan tambahan dari data file. Ini entri direktori fisik lain. Jadi dua hardlink ke file tidak akan mengubah ruang disk yang digunakan sangat banyak.
LawrenceC
Jika Anda mahir dengan konsep pemrograman, anggap soft-link sebagai pointer tradisional, dan hard-link sebagai pointer (pintar) yang dihitung dengan referensi.
padi