pengantar
Windows 2000 dan yang lebih tinggi mendukung tautan simbolik direktori, di mana direktori berfungsi sebagai tautan simbolik ke direktori lain di komputer. Misalnya, jika direktori D: \ SYMLINK menentukan C: \ WINNT \ SYSTEM32 sebagai targetnya, maka aplikasi yang mengakses D: \ SYMLINK \ DRIVERS akan mengakses C: \ WINNT \ SYSTEM32 \ DRIVERS. Tautan simbolik direktori dikenal sebagai persimpangan NTFS di Windows. Sayangnya, Windows tidak memiliki alat untuk membuat persimpangan — Anda harus membeli Kit Sumber Daya Win2K, yang dilengkapi dengan program linkd untuk membuat persimpangan. Karena itu saya memutuskan untuk menulis alat saya sendiri persimpangan: Junction. Junction tidak hanya memungkinkan Anda untuk membuat persimpangan NTFS, ini memungkinkan Anda untuk melihat apakah file atau direktori benar-benar titik reparse. Poin reparse adalah mekanisme yang menjadi dasar persimpangan NTFS,
Silakan baca artikel Microsoft KB ini untuk tips menggunakan persimpangan.
Perhatikan bahwa Windows tidak mendukung persimpangan ke direktori pada share jarak jauh.
Jika Anda ingin melihat informasi berulang, penggunaan untuk Junction adalah sebagai berikut:
Menggunakan Persimpangan
Gunakan persimpangan untuk daftar persimpangan:
Penggunaan: [-s]
subdirektori Perulangan -s
Contoh:
Untuk menentukan apakah file merupakan persimpangan, tentukan nama file:
persimpangan c: \ test
Untuk daftar persimpangan di bawah direktori, sertakan –s switch:
persimpangan -sc: \
Untuk membuat persimpangan c: \ Program-File untuk "c: \ Program Files":
C:> md Program-File
C:> persimpangan c: \ Program-File "c: \ Program Files"
Untuk menghapus persimpangan, gunakan –d switch:
junction -dc: \ Program-Files
Anda tidak perlu mengunduh program tambahan untuk membuat daftar persimpangan, symlink, dan tautan keras, tetapi jika Anda memiliki persyaratan format output tertentu, mereka dapat membantu.
Daftar semua persimpangan, symlink dan direktori symlink di direktori saat ini dan subdirektori-nya:
Atau jika Anda ingin mereka terdaftar secara terpisah ...
Daftar semua persimpangan di direktori saat ini dan subdirektori:
Daftar semua symlink di direktori saat ini dan subdirektori-nya:
Daftar semua direktori symlink di direktori saat ini dan subdirektori-nya:
The
l
Atribut bendera adalah kunci di sini;l
adalah untukReparse Points
(persimpangan, symlink dan direktori symlink)Tautan keras
Sayangnya
dir
daftar tautan keras sebagai file normal, jadi Anda tidak dapat menggunakannya untuk mengidentifikasi tautan keras. Anda yang menggunakan inbuiltfsutil
sebagai gantinya. Itu perlu dijalankan dari prompt perintah yang ditinggikan.Dengan
fsutil
, daftarkan semua tautan keras di direktori saat ini dan subdirektori-nya:One-liner ini tidak ideal, dan saya akan menyambut setiap perbaikan.
forfiles
dengan opsi subdirektori berulang (/s
) memalu CPU saya, dan perlu waktu untuk menyelesaikannya.fsutil
dasarnya akhirnya berjalan dua kali; pertama kali mengidentifikasi tautan keras dengan menghitung jumlah jalur keluaran yang dihasilkan oleh setiap panggilan, dan yang kedua pada tautan keras yang baru saja ditemukan untuk mendapatkan hasil yang benar.uniq
.Berikut adalah file batch yang digunakan hanya
for
untuk mengidentifikasi tautan keras. Karenaforfiles
tidak terlibat, mungkin sedikit lebih cepat, namun masih menderita peringatan tersisa dari satu-liner di atas.Ada beberapa opsi lain (yang belum diuji):
Gunakan utilitas Microsoft HL Scan (lama)
Gunakan perintah cari alternatif yang datang dengan toolkit utilitas SFUA Microsoft:
Gunakan utilitas findlink Sysinternals dengan cara yang mirip dengan yang
fsutil
disebutkan di atasGunakan program ListLinks Uwe Sieber - lihat tautan untuk penggunaan
Gunakan Nirsoft's NTFSLinksView jika Anda lebih suka aplikasi GUI
sumber
Pada Powershell 5+, one-liner berikut secara rekursif mencantumkan semua hardlink file, persimpangan direktori dan tautan simbolik dan targetnya mulai dari
d:\Temp\
:Keluaran:
Jika Anda peduli tentang banyak target untuk hardlink, gunakan variasi ini yang mencantumkan target yang dipisahkan dengan tab:
Anda mungkin memerlukan hak administrator untuk menjalankan skrip ini pada say
C:\
.Untuk menjalankan skrip ini dari baris perintah tradisional (cmd.exe):
Contohnya:
sumber
dir 'd:\Temp' -recurse -force | ?{$_.LinkType -eq "Junction"} | select FullName,LinkType,Target
LinkType
tampaknya tidak dapat diandalkan untuk poin reparse. Misalnya, di komputer saya yang menjalankan W10 dengan PS 5.1,LinkType
adalah nol untuk "C: \ ProgramData \ Desktop" dan "C: \ Users \ All Users", sedangkandir /aL
(Prompt Perintah, bukan PowerShell) menunjukkan yang pertama adalah titik persimpangan dan yang kedua adalah tautan simbolik.Tautan keras lebih baik dijelaskan seperti di atas, tetapi untuk Tautan Simbol dan Persinggungan yang berikut berfungsi dengan baik:
Saya tidak menggunakan perintah baru di sini, tetapi meningkatkan pada beberapa yang terdaftar dengan menunjukkan kepada Anda daftar yang bagus dari setiap tautan yang ditemukan, di jalurnya, ketik (SymLink / Junction) dan kedua jalur tautan dan jalur target.
Ada beberapa yang bagus di atas tetapi mereka hanya memberi Anda jalur TARGET, dan biasanya Anda ingin menghapus tautan, dan bukan target, atau menghubungkan semua tautan dan target.
Untuk mendapatkan Jenis, Tautan, dan Target, Anda dapat menggunakan yang berikut ini di CMD:
Contoh output:
sumber
Far Manager 3.0 dapat mencari dan menampilkan symlink dan titik persimpangan sebagai berbeda dari file dan direktori. (Ia dapat melakukan banyak hal lain.) Ia juga dapat mencari tautan keras.
ALT+ F7=> [x] Gunakan filter => Filt er =>Ins
Pilih atribut yang Anda inginkan.
sumber
LinkMagic2.exe (Junction list magic) juga bagus.
Saya keliru menghapus semua
c:\user
tautan Junction saya , seperti printhood, nethood, dan data aplikasi ketika saya pertama kali menginstal windows 7 2 tahun yang lalu karena saya pikir mereka diletakkan di sana secara keliru oleh instalasi. Apa yang sebenarnya mereka lakukan adalah kompatibilitas ke belakang, dan saat mencari di internet saya melihat beberapa mengalami kesulitan ketika mencoba melakukan hal-hal tertentu tanpa titik persimpangan ini.sumber