"direktori junction" lebih "direktori link simbolik"?

Dalam konteks NTFS:

MKLINK [[/D] | [/H] [J]] Link Target

/D Menciptakan sebuah direktori link simbolik. Default adalah file symbolic link. /H Menciptakan hard link bukan link simbolik. /J Menciptakan sebuah Direktori Junction. Link menentukan baru simbolik link nama. Target menentukan path (relatif atau absolut) yang baru link yang menunjuk ke.

  1. Isn't direktori junction hal yang sama seperti a direktori link simbolik?

Apa's perbedaan antara mklink /D f1 f2 dan mklink /J f1 f2 ?

  1. Sejak a "direktori" sebenarnya hanya file, apa yang akan menjadi perbedaan antara sebuah direktori simbolik link dan file symbolic link?
Mengomentari pertanyaan (1)
Larutan

Persimpangan ini jelas bukan hal yang sama seperti direktori link simbolik, meskipun mereka berperilaku sama. Perbedaan utama adalah bahwa, jika anda mencari di remote server, persimpangan diproses di server dan direktori link simbolik diproses di client. Juga lihat Matius's komentar pada fakta bahwa ini berarti link simbolik pada sistem file lokal dapat point untuk remote file sistem.

Misalkan pada sebuah mesin bernama Alice anda adalah untuk menempatkan titik persimpangan c:\myjp dan direktori link simbolik c:\mysymlink, keduanya menunjuk ke c:\targetfolder. Sementara anda're menggunakan Alice anda tidak't melihat banyak perbedaan di antara mereka. Tapi jika anda're menggunakan mesin lain bernama Bob, maka titik persimpangan

\\Alice\c$\myjp akan mengarah ke \\Alice\c$\targetfolder

tapi link simbolik

\\Alice\c$\mysymlink akan mengarah ke \\Bob\c$\targetfolder

(Peringatan: secara default, sistem doesn't mengikuti symlink pada remote volume, sehingga dalam banyak kasus kedua contoh yang benar-benar akan mengakibatkan baik "File Tidak Ditemukan" atau "link simbolik tidak dapat diikuti karena jenis dinonaktifkan.")

Perbedaan antara sebuah direktori simbolik link dan file symbolic link adalah hanya yang satu merupakan direktori dan satu mewakili sebuah file. Karena target dari link doesn't perlu ada ketika link yang dibuat, file kebutuhan sistem untuk mengetahui apakah untuk memberitahu aplikasi bahwa itu adalah sebuah direktori atau tidak.

Hal ini juga harus dicatat bahwa menciptakan link simbolik membutuhkan hak istimewa (secara default, hanya tersedia untuk peningkatan proses) sedangkan menciptakan junction hanya membutuhkan akses ke file sistem.

Komentar (28)

Pembicaraan kompleks sakit otak-saya suka grafik:

Asumsikan setiap MyLink adalah simbolik link dan setiap MyJunc adalah persimpangan menunjuk pada Target seperti yang dibuat.

misalnya

mklink /D MyLink C:\T_Dir untuk menciptakan link simbolik ke target direktori

mklink /J MyJunc C:\T_Dir untuk menciptakan sebuah direktori junction ke target direktori

Dimana sintaks mklink [/J,/D] [link path] [target path] sebagai diketik pada mesin lokal


 link path    |   target path   |         When accessed ..
              |                 |  (locally)    |    (remotely)
              |                 |               |
C:\MyLink     |   C:\T_Dir      |  C:\T_Dir     |  [leads back to local]
C:\MyJunc     |   C:\T_Dir      |  C:\T_Dir     |  [leads to remote]
              |                 |
\\Svr\MyLink  |   C:\T_Dir      |   C:\T_Dir    |  [leads back to local]
\\Svr\MyJunc  |   C:\T_Dir      |  *** Must create and point local ***
              |                 |
C:\MyLink     |  \\Sv2\T_Dir    |  \\Sv2\T_Dir  |   Error*1
C:\MyJunc     |  \\Sv2\T_Dir    |  *** Error - Must point local ***
              |                 |
\\Svr\MyLink  |  \\Sv2\T_Dir    |  Error*1
\\Svr\MyJunc  |  \\Sv2\T_Dir    |  *** Must create link using target device ***

Kesalahan*1 - Jika anda diblokir akses ke remote link simbolik pada mesin lokal anda, maka ini akan bekerja .. tapi hanya pada mesin lokal di mana ia's diblokir

Komentar (4)

Link simbolik memiliki fungsi yang lebih, sementara persimpangan hampir tampaknya menjadi warisan tidur karena keterbatasan mereka, tetapi implikasi dari pembatasan ini adalah khusus mengapa junction mungkin menjadi pilihan lebih dari simbolik link. Remote menargetkan membuat link simbolik lebih fungsional, tetapi juga meningkatkan keamanan mereka profil, sementara persimpangan mungkin dianggap lebih aman karena mereka dibatasi untuk jalur lokal. Jadi, jika anda ingin link lokal dan dapat hidup dengan path absolut, anda're mungkin lebih baik dengan persimpangan; jika tidak, pertimbangkan symbolic link untuk menambahkan kemampuan.

*Pernyataan dari perbedaan kecepatan/kompleksitas berasal dari unverified pernyataan di entri Wikipedia pada NTFS reparse poin (baca).


Lainnya NTFS Link Perbandingan

Berikut ini adalah beberapa perbandingan lain pada topik, tapi ini bisa menyesatkan ketika mempertimbangkan persimpangan karena mereka don't daftar manfaat yang saya daftar di atas.

Diambil dari sini (pengantar yang baik baca)

Dari SS64 halaman pada MKLink


Komentar anda tentang Terminologi

Persimpangan Link Simbolik

Persimpangan dan link Simbolik yang benar-benar melakukan hal yang sama dengan cara yang sama (reparse poin), selain dari yang tersebut di atas perbedaan-perbedaan dalam cara mereka're diproses. Bahkan, secara teknis, Persimpangan adalah simbolik link, dan kadang-kadang dokumentasi sebut Junction link simbolik, seperti yang terjadi di sini. Jadi, yang's hanya sesuatu yang harus diperhatikan mengenai terminologi.

NTFS

Meskipun OP menentukan ini, it's worth menunjukkan bahwa "link simbolik" adalah sebuah istilah yang sangat umum yang tidak spesifik ke NTFS. Jadi, untuk menjadi tertentu, perbandingan ini adalah tentang NTFS Persimpangan vs NTFS Link Simbolik.

Komentar (2)