Apa kelebihan symlinks dari hard link dan sebaliknya?

10

Saya mengerti perbedaan antara simbolik dan tautan keras, tetapi saya tidak pernah mengerti mengapa memilih satu atau yang lain.

Javier
sumber
2
Lihat jawaban untuk 'Apa perbedaan antara tautan simbolik dan tautan keras?' pada StackOverflow: stackoverflow.com/questions/185899/…
pelms

Jawaban:

10

Ini telah dibahas secara rinci tentang ServerFault.

Hard link secara tradisional berbagi struktur sistem file yang sama (inode in unixspeak), sedangkan soft-link adalah pengalihan pathname.

  • Hardlink harus berada pada sistem file yang sama, softlink dapat melintasi sistem file.
  • File yang di-link tetap tertaut bahkan jika Anda memindahkan salah satunya (kecuali jika Anda memindahkan satu ke sistem file lain yang memicu mekanisme salin dan hapus). File softlink rusak jika Anda memindahkan target (asli), dan kadang-kadang ketika Anda memindahkan tautan (Apakah Anda menggunakan jalur absolut atau relatif? Apakah masih valid?).
  • File yang di-link sama-sama, sedangkan yang asli khusus di softlink, dan menghapus yang asli menghapus data. Data tidak hilang sampai semua hardlink dihapus.
  • Softlink dapat menunjuk pada target apa pun , tetapi sebagian besar OS / sistem file melarang direktori hardlink untuk mencegah siklus dalam grafik sistem file (dengan pengecualian .dan ..entri dalam direktori unix yang merupakan hard link).
  • Softlink dapat memerlukan dukungan khusus dari alat bantu berjalan filesystem. Baca di readlink (2) .

(Beberapa detail teringat oleh mat1t . Terima kasih.)

dmckee --- mantan kucing moderator
sumber
10

Ronald menulis sebuah tautan keras yang dapat memiliki izin berbeda di dua tempat. Ini tidak benar. Kedua tempat berbagi inode yang sama. Izin terikat ke inode, bukan nama file. Jadi hardlink di dua tempat memiliki izin yang persis sama, waktu akses, ...

hurikhan77
sumber
1

symlinks dapat melintasi sistem file, tautan keras tidak dapat. Jika Anda menghapus file asli, hardlink tetap hidup, symlink tidak.

bobmcn
sumber
0

Tautan keras pada dasarnya berarti file tersebut hidup di dua tempat, ia dapat memiliki izin yang berbeda, Anda dapat menghapusnya di tempat tetapi tidak di tempat lain.

Tautan lunak hanyalah penunjuk ke hal yang nyata.

Hard link adalah dua (atau lebih) entri direktori yang menunjuk pada file yang sama. Tautan lunak adalah entri direktori yang menunjuk pada entri direktori lain.

Ronald Pottol
sumber