Judulnya mengatakan itu semua ... apa bedanya? Kapan saya menggunakan satu dan kapan saya menggunakan yang lain?
Ditambahkan: Perhatikan bahwa Persimpangan poin , tautan keras dan tautan simbolik (lunak) adalah tiga hal terpisah di NTFS.
Judulnya mengatakan itu semua ... apa bedanya? Kapan saya menggunakan satu dan kapan saya menggunakan yang lain?
Ditambahkan: Perhatikan bahwa Persimpangan poin , tautan keras dan tautan simbolik (lunak) adalah tiga hal terpisah di NTFS.
Jawaban:
File data NTFS disimpan dengan semua atributnya sebagai "inode" dengan ID, dan nama file mengarah ke inode. Semua file memiliki satu + hardlink. beberapa alat dapat membuat nama tambahan (hardlink) yang mengarah ke inode yang sama, yang memiliki penghitung jumlah nama yang menunjuk padanya. Jika angkanya menjadi nol, OS menghapus file, inode.
Alat khusus, seperti LN dapat membuat nama file tambahan yang menunjuk ke inode yang ada, menggunakan nama file yang menunjuk mereka. Perhatikan bahwa semua atribut file, termasuk tanggal dan waktu disimpan dengan inode, bukan nama file.
Hardlink (ekstra) berguna ketika Anda ingin nama yang berbeda menunjuk ke data yang sama, baca atau tulis. Mereka menghemat ruang dan overhead. Namun, mereka mengkompromikan program yang menganggap nama berbeda menunjuk ke data yang berbeda. misalnya, jika Anda mengganti referensi ke file duplikat dengan hardlink ke file tunggal, maka Anda telah menghapus cadangan apa pun yang Anda miliki! OS windows adalah salah satu program yang mengasumsikan nama yang berbeda menunjuk ke set bit yang berbeda.
Hardlink harus memiliki volume fisik dan logis yang sama.
Mereka berguna untuk:
mengurangi panjang jalur karena Windows hanya mendukung 256 karakter atau lebih.
mengurangi ruang penyimpanan file data duplikat - misalnya, Anda bisa memiliki beberapa cadangan partisi dengan beberapa pohon direktori lengkap, tetapi dengan hardlink untuk file yang belum berubah sejak cadangan sebelumnya.
Persimpangan poin berantakan dan gunakan Poin Reparse (yang saya tidak mengerti). Mereka dapat menunjuk ke volume fisik atau logis yang berbeda tetapi mereka harus berada di komputer yang sama. Mereka tampaknya dapat digunakan seperti symlinks untuk direktori, memungkinkan nama kedua untuk tujuan yang sama, tetapi terbatas pada satu komputer, bukan hanya satu volume.
Berguna untuk mengurangi panjang jalur, atau menyederhanakan bekerja dengan beberapa program dengan nama direktori hardcoded.
Peringatan yang sama juga! Banyak program mengasumsikan nama berbeda = file berbeda.
Dan kemudian ada tautan simbolis (yang dapat melintasi jaringan), pintasan dan PIF dan .....
Juga beberapa informasi dari Microsoft sendiri :
Pada dasarnya, mereka mengatakan untuk menggunakan tautan keras hanya untuk file dalam volume yang sama (disk drive letter) dan titik persimpangan hanya untuk direktori di komputer yang sama (mereka dapat menjangkau volume lokal yang berbeda).
Tautan simbolik: Tautan ke file atau direktori pada volume yang sama atau berbeda (huruf drive) atau bahkan ke file atau direktori jarak jauh (menggunakan UNC di jalurnya).
Hard Link: Tautan ke file dengan volume yang sama (huruf drive) saja. Setiap file (data file) memiliki setidaknya 1 hard link (nama file). Menghapus semua tautan keras secara efektif menghapus file.
Persimpangan: Tautan ke direktori pada volume yang sama atau berbeda (huruf drive) tetapi tidak ke direktori jarak jauh.
Dengan asumsi Anda bekerja dengan volume NTFS di Windows Vista / 7 Anda dapat menggunakan alat baris perintah MKLINK
untuk membuat ketiga jenis Tautan:
MKLINK [[/D] | [/H] | [/J]] Link Target /D Creates a directory symbolic link. Default is a file symbolic link. /H Creates a hard link instead of a symbolic link. /J Creates a Directory Junction. Link specifies the new symbolic link name. Target specifies the path (relative or absolute) that the new link refers to.
Tautan simbolik : Tautan simbolik adalah objek sistem file yang menunjuk ke objek sistem file lain (misalnya: file / direktori).
MKLINK
dapat digunakan untuk membuat tautan simbolik. Menggunakan /D
parameter membuat tautan simbolik direktori. MKLINK tidak memeriksa apakah targetnya adalah file atau direktori atau bahkan jika targetnya ada! Ini berarti Anda berpotensi membuat tautan tidak valid seperti tautan simbolik direktori ke file atau tautan simbolik ke file / direktori yang tidak ada.
Tautan simbolik bisa berupa tautan absolut atau relatif. Tautan absolut adalah tautan yang menentukan setiap bagian dari nama jalur sementara tautan relatif ditentukan relatif ke tempat penentu-tautan relatif berada di jalur yang ditentukan.
Tautan simbolis absolut dapat mengarah ke file / direktori pada volume yang sama atau berbeda, serta, ke file atau direktori jarak jauh menggunakan jalur UNC. Namun, tautan simbolis relatif terbatas pada satu volume.
Hak istimewa yang ditinggikan diperlukan untuk membuat tautan simbolis meskipun begitu hak istimewa yang ditinggikan tidak diperlukan untuk menghapus tautan.
Hard link : Hard link adalah representasi sistem file dari suatu file dimana lebih dari satu jalur mereferensikan satu file.
MKLINK
memungkinkan membuat tautan keras (menggunakan /H
parameter) hanya file (bukan direktori). Tautan keras hanya dapat dibuat dari file dalam volume yang sama.
File dengan banyak tautan keras hanya benar-benar dihapus ketika semua tautan keras dihapus yaitu jumlah tautan mencapai nol. Jadi sebenarnya setiap file yang Anda buat setidaknya memiliki satu tautan keras untuk Anda gunakan MKLINK
atau tidak.
Setiap perubahan pada file itu langsung terlihat oleh aplikasi yang mengaksesnya melalui tautan keras yang mereferensikannya. Namun, ukuran entri direktori dan informasi atribut diperbarui hanya untuk tautan yang digunakan untuk melakukan perubahan.
Perhatikan bahwa atribut pada file tercermin di setiap tautan keras ke file itu, dan perubahan pada atribut file itu menyebar ke semua tautan keras. Misalnya, jika Anda membatalkan atur atribut baca-saja pada tautan keras untuk menghapus tautan keras tertentu, dan ada banyak tautan keras ke file aktual, maka Anda perlu mengatur ulang atribut baca-saja pada file tersebut. dari salah satu tautan keras yang tersisa untuk membawa file dan semua tautan keras yang tersisa kembali ke status hanya baca.
Persimpangan : Sebuah persimpangan (juga disebut tautan lunak) berbeda dari tautan keras karena objek penyimpanan yang dirujuknya adalah direktori yang terpisah, dan persimpangan dapat menghubungkan direktori yang terletak di volume lokal yang berbeda di komputer yang sama. Jika tidak, persimpangan berfungsi identik dengan tautan keras. Persimpangan diimplementasikan melalui titik-titik berulang.
MKLINK
izin membuat persimpangan (menggunakan /J
parameter) direktori (dan bahkan file meskipun ini mungkin harus dianggap sebagai tautan yang tidak valid).
Persimpangan dapat dianggap sebagai setara tautan keras untuk tautan simbolik ke direktori. Tautan persimpangan tidak dapat dibuat ke direktori jarak jauh tetapi dapat dibuat ke direktori dengan volume yang sama / berbeda.
Referensi:
[1] Tautan Keras dan Persimpangan: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365006%28v=vs.85%29.aspx
[2] Membuat Tautan Simbolis: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363878%28v=vs.85%29.aspx
[3] "persimpangan direktori" vs "tautan simbolik direktori"?
Hard link hanyalah nama lain untuk sebuah file. Jika Anda memiliki file bernama A.txt dan Anda memiliki tautan L.txt, setelah Anda menghapus A.txt, Anda masih akan memiliki akses ke data itu melalui L.txt. Hanya ketika keduanya dihapus file hilang.
Di sisi lain, Anda memiliki apa yang disebut soft-link (persimpangan jika itu folder atau tautan simbolis jika itu file). Dalam hal ini, ketika Anda menghapus A.txt, file benar-benar hilang. Menghapus L.txt tidak berpengaruh apa pun pada file.
Tautan keras hanya dapat digunakan pada partisi yang sama dengan file asli dan tautan lunak dapat digunakan di seluruh partisi.
File dan folder PS sebagian besar dapat dipertukarkan sejauh NTFS berjalan.
Hard link: hanya berfungsi untuk volume yang sama.
Persimpangan: volume lokal apa pun
Simbolik: volume lokal atau jalur UNC
| Link Type | Same Volume | Different Volume | UNC Path |
|---------------|-------------|------------------|----------|
| Hard link | Yes | No | No |
| Junction | Yes | Yes | No |
| Symbolic link | Yes | Yes | Yes |
Obrolan bonus
Windows membuat persimpangan dan tautan simbolik untuk keperluan AppCompat; untuk aplikasi yang ditulis dengan buruk yang berpikir:
valid
C:\Users>dir /as
Directory of C:\Users
04/11/2018 07:45 PM <SYMLINKD> All Users [C:\ProgramData]
04/11/2018 07:45 PM <JUNCTION> Default User [C:\Users\Default]
Hal yang sama berlaku di folder profil pengguna, untuk aplikasi yang mengharapkan folder era Windows XP masih ada hari ini:
| Folder | Type | Target |
|------------------|------------|------------------------------------------------------------------| | Application Data | <JUNCTION> | C:\Users\Ian\AppData\Roaming |
| Cookies | <JUNCTION> | C:\Users\Ian\AppData\Local\Microsoft\Windows\INetCookies |
| Local Settings | <JUNCTION> | C:\Users\Ian\AppData\Local |
| My Documents | <JUNCTION> | C:\Users\Ian\Documents |
| NetHood | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
| PrintHood | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
| Recent | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Recent |
| SendTo | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\SendTo |
| Start Menu | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Start Menu |
| Templates | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Templates |
Untuk menjawab secara terprogram:
Tautan keras: shared_ptr <>. Selalu ada satu.
Tautan lunak: lemah_ptr <>. Hanya valid ketika ada tautan keras lain.