Pada dasarnya ada dua batasan utama dengan tautan keras:
- Hard link biasanya mensyaratkan bahwa tautan dan file berada di sistem file yang sama.
- Hanya pengguna super yang dapat membuat tautan keras ke direktori.
Dengan demikian, tautan simbolik diperkenalkan untuk mengatasi keterbatasan tautan keras. Jadi, pertanyaannya adalah, apakah tautan keras masih dibutuhkan? Mungkinkah ada situasi di mana mereka lebih berguna?
Jawaban:
Hardlink membantu kami mengatur sistem file kami dengan cara yang jauh lebih fleksibel. Pada dasarnya, hardlink memungkinkan kita untuk mengambil satu file dan membuatnya menjadi banyak tempat di sistem file sekaligus. Pikirkan tentang skenario di mana Anda adalah seorang fotografer dan memiliki banyak foto (ini adalah contoh dari hidup saya!). Anda mungkin mengaturnya oleh orang-orang yang muncul di dalamnya, karena kadang-kadang orang meminta Anda untuk foto mereka. Tetapi Anda mungkin juga ingin mengaturnya berdasarkan lokasi dan tanggal. Tidak ada cara nyata untuk bersarang ketiga hal ini, mereka adalah kapak organisasi yang benar-benar terpisah. Jadi, Anda dapat membuat tiga hierarki berbeda untuk tiga hal berbeda ini, dan minta setiap foto ada di ketiganya, tanpaharus menyimpan setiap foto tiga kali. Itulah keajaiban hardlink. Putuskan tautan symlink, kita tidak perlu khawatir tentang di mana "file asli" berada, karena semuanya adalah file asli. Kami dapat menghapus dan memindahkan sesuka hati, karena file tersebut akan dipertahankan hingga tidak ada lagi referensi padanya, dan dihapus ketika Anda menghapus hardlink terakhir. Ini sederhana dan tidak mengharuskan Anda untuk melacak sangat banyak.
sumber
gzip
,gunzip
danzcat
.Konten file tidak akan dihapus sampai semua tautan keras (ya, semua nama file adalah tautan keras, bahkan yang pertama) telah dihapus dan file ditutup. Dengan demikian, ini bisa berguna ketika file diperlukan di banyak tempat, tetapi dapat dihapus dari salah satu dari mereka kapan saja, misalnya antara
~/Downloads/coolsong.mp3
dan~/Music/Cool Song.mp3
.sumber
Satu keuntungan yang tidak terlalu penting dari sebuah tautan keras di atas tautan simbolis adalah bahwa ketika mencapai inode untuk tautan keras, kernel tidak memiliki proses lebih lanjut untuk mengakses file. Ketika menemukan tautan simbolik, kernel harus membaca nilai tautan dan melanjutkan melintasi struktur direktori sebelum sampai ke inode untuk file. Ini membutuhkan waktu lebih lama, meskipun perbedaannya tidak selalu mudah diukur. Itu akan sangat menyenangkan ketika salah satu elemen pada nilai symlink itu sendiri adalah symlink.
sumber
ada beberapa alasan untuk tautan keras
Jadi salah satu alasan untuk menggunakan tautan keras adalah mungkin menghemat banyak ruang ...
Anda dapat menambahkan ke salah satu referensi dan data masuk ke file bersama. Anda juga dapat menambahkan satu deskriptor file saat membaca dari yang lain (mis. Dengan tail -f)
sumber
Banyak contoh yang diberikan di sini valid, tetapi akan berfungsi sama baiknya dengan tautan lunak (mis. Masalah "perlu satu file di beberapa tempat").
Contoh yang bagus untuk mana tautan keras sangat membantu adalah perangkat lunak cadangan Dirvish :
Dirvish membuat cadangan di tingkat sistem file (yaitu menyalin file, tidak membuat gambar), dengan menyalin file ke sistem file (cadangan) terpisah (seperti harddisk USB). Setiap kali Anda membuat cadangan, dirvish akan membuat salinan terpisah dari pohon direktori yang akan disimpan.
Kuncinya adalah bahwa jika dirvish mendeteksi bahwa sudah ada salinan cadangan dari pohon yang Anda simpan, itu akan secara otomatis menggunakan kembali file yang belum diubah, dengan membuat tautan keras di pohon baru ke file di pohon yang lama.
Dengan cara itu, setiap salinan cadangan adalah salinan lengkap, lengkap dari pohon direktori, tetapi pada saat yang sama hanya file yang diubah yang benar-benar mengambil ruang dalam sistem file. Dengan kata lain, Anda mendapatkan manfaat cadangan tambahan (penghematan ruang) dan cadangan penuh (pengambilan mudah) secara bersamaan.
Ini hanya dimungkinkan karena tautan keras benar-benar transparan ke alat userspace.
Ini mungkin juga akan bekerja dengan tautan simbolis (walaupun Anda akan mendapatkan masalah saat mencadangkan data yang menggunakan tautan simbolis itu sendiri), tetapi satu keuntungan hanya mungkin dengan tautan keras adalah:
Jika Anda ingin membuang cadangan lama, Anda cukup menghapus pohon direktori cadangan yang sesuai. File yang hanya ditautkan dari pohon itu dihapus secara otomatis oleh sistem file (karena tautan keras terakhirnya dihapus), tetapi file yang juga muncul di salinan lain tetap ada di disk.
sumber
Satu kasus yang bermanfaat adalah, katakanlah, ketika Anda memiliki program (atau skrip) yang perlu mengunduh tarball sementara yang besar dan setelah mengekstraknya, program Anda akan segera menghapusnya.
Jika Anda karena suatu alasan ingin mempertahankan tarball itu untuk penggunaan di masa mendatang, cara terbaik
ln /tmp/tarball.tgz ~
adalah saat tarball masih diunduh. Maka Anda tidak perlu melakukan apa pun.Saat unduhan selesai, dan bahkan setelah program Anda menghapus yang 'asli', salinan persisnya masih ada di direktori home Anda.
sumber
Saya menggunakan 'Tautan Keras' untuk mencadangkan beberapa 'HowTos' dan Cuplikan saya
Saya memiliki direktori bernama 'Shared Documents' di pengguna / root saya. Dalam direktori itu saya memiliki 'tautan keras' ke tips, trik, cuplikan, howto's yang tinggal di direktori yang sesuai; php, mysql, css, regex, formula, linux, dll. Memiliki mereka di 'satu tempat' membuatnya lebih mudah untuk digunakan, memperbaruinya daripada harus melompat-lompat di Dokumen / direktori saya mencari dokumen-dokumen ini yang sering saya gunakan.
Dulu, saya menggunakan symlink. Saya dengan setia akan mencadangkan direktori 'Shared Documents' yang umum ini ke server saya. Masalahnya adalah, symlinks atau 'Soft Links', jika disalin (cp -auv) atau tar'ed dan disalin, HANYA mencadangkan atau menyalin 'tautan' dan BUKAN isi dokumen. Jadi, saya harus menelusuri direktori dan menyalin masing-masing 2 lusin file dari lokasi mereka yang sebenarnya.
Dengan HARD LINKS, saya dapat menyalin, tar, rsync direktori 'Shared Docs' dan benar-benar mem-backup dokumen-dokumen yang tersebar luas dengan percaya diri, kontennya sebenarnya didukung. Ini benar-benar menyebalkan bagi saya, ketika saya menyadari saya telah mencadangkan 0 gigitan 'file tautan' dan Bukan informasinya.
Kelemahan dari menggunakan 'Tautan Keras' adalah bahwa melakukan ls pada direktori tidak memberi Anda indikasi bahwa suatu file 'ditautkan' dengan file lain atau di mana file itu dapat hidup berdampingan. Ada beberapa cara untuk menemukannya, tapi saya katakan itu tidak jelas dengan ls -l -> point to ... Jadi, saya biasanya menambahkan catatan di awal dokumen yang menunjukkan direktori / file apa file ini file 'dibagikan' dengan
Landis.
sumber