Bagaimana saya bisa menemukan semua symlink di Windows Vista atau 7?

10

Saya mencari cara untuk mencari semua tautan simbolis pada sistem file NTFS pada Windows Vista atau 7.

Akan lebih baik lagi jika saya dapat menentukan target spesifik untuk melihat apakah ia memiliki symlink yang menunjuk padanya, tetapi cara untuk mencari mereka semua akan lebih bagus juga.

Wojo
sumber

Jawaban:

15

Inilah cara terbaik yang saya temukan sejauh ini:

dir /a:l /s

Tapi itu jelek. Saya lebih suka daftar yang menunjukkan satu file per baris dalam format target => sumber atau yang serupa. Grepping untuk SYMLINK tidak berfungsi dengan baik karena format multi-line. Switch / B telanjang tidak memberikan apa pun selain nama file target juga.

Perhatikan bahwa grep adalah alat multiline. Anda dapat menggunakan -an untuk mengambil garis n sebelumnya dan berikutnya, dan -An untuk hanya mengambil garis n berikutnya. Sebagai contoh, grep -A10 configure akan mengambil sepuluh baris berikutnya setelah menemukan kata "configure". Jika Anda memiliki 2 contoh kata, konfigurasikan 3 baris secara terpisah, maka Anda akan mendapatkan total 14 baris.

Wojo
sumber
5

Karena pencarian Segalanya telah ditulis ulang (Januari 2013), Anda sekarang dapat mencari atribut. Kueri " attrib: L " akan mengungkapkan semua Tautan Simbol dari berbagai jenis di komputer Anda. Tampilkan kolom Atribut (Ctrl + Shift + 8) untuk mengurutkan berdasarkan atribut.

Anda juga dapat membuat Filter untuk pencarian atribut tertentu (Cari, Tambahkan ke Filter) jika Anda sering melakukan pencarian jenis itu atau ingin menetapkan pintasan keyboard.

Saya memang memperhatikan attrib awal : pencarian tampaknya mengunci Semuanya sementara, tetapi selesai setelah beberapa detik ... sepadan dengan menunggu kecil untuk alat yang kuat.

BJordan
sumber
2

Coba SageLinks - utilitas open-source freeware kecil untuk Windows, ia dapat menemukan dan memeriksa ulang semua symlink serta persimpangan dan pintasan:

Screenshot SageLinks

Nikolay Raspopov
sumber
Bisakah Anda menambahkan beberapa informasi tentang tautan tersebut, dan bukan hanya gambar? Biaya, bagaimana Anda menemukannya, apakah Anda berafiliasi dengannya, dll?
Luke Kanada
Ini adalah tautan ke halaman GitHub dengan utilitas open-source freeware yang menemukan (dan memeriksa validitas) semua symlink di Windows XP atau lebih baru seperti yang ditanyakan dalam pertanyaan ini.
Nikolay Raspopov
Luar biasa, bisakah Anda mengedit untuk menambahkan itu ke jawaban Anda? Ini membantu para pengunjung di masa depan untuk mengetahui apakah ini jawaban yang lebih cepat
Luke Kanada
Bagus dan cepat. Tetapi tautan keras NTFS seperti c: / a // b berfungsi dengan baik di win7; sementara sagelink menandai mereka sebagai tidak valid. Win7 memungkinkan kedua garis miring, garis miring terbalik, garis miring ekstra.
mosh
Tidak diizinkan Jelaskan bagaimana Anda membuat tautan seperti itu?
Nikolay Raspopov
2

Anda dapat mencoba alat gratis ini, Junction by SysInternals

Untuk mencari semua symlink di drive, buka root dan ketik:

C:\> junction -s -q

-s melewati semua subdirektori

-q mengabaikan kesalahan seperti "Akses ditolak."

Itu akan memberi Anda semua poin reparse bahwa Windows sedang menggunakan.

Jika Anda ingin menentukan apakah file atau folder tertentu adalah titik berulang, cukup ketikkan nama utilitas dan nama file / folder setelahnya. Hati-hati dengan nama folder karena menambahkan garis miring terbalik dapat mengubah hasil.

C:\> junction c:\apps

Junction v1.06 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\apps: JUNCTION
   Substitute Name: e:\dropbox\apps

C:\>
Matahari
sumber
0

Untuk semua pencarian file pada sistem Windows saya sarankan menggunakan Semuanya . Ini sangat cepat dan sangat ringan.


sumber
Semuanya rapi, tapi tampaknya tidak dapat menyaring oleh Windows poin persimpangan, symlink, dll
wojo
0

Saya juga mencari kemampuan ini dan belum melihatnya di tempat lain. Saya telah menambahkannya ke perpustakaan Windows saya untuk Python. Sayangnya, jika Anda belum menjadi programmer Python yang rajin, Anda memiliki beberapa langkah untuk memasang semuanya.

  1. Unduh Python 2.6.4 dan instal.
  2. Unduh distribusi-pengaturan (bagian dari mendistribusikan ) atau ez_setup (bagian dari setuptools ) dan jalankan skrip. Ini menginstal salah satu dari dua manajer paket untuk Python yang harus dijalankan oleh paket saya.
  3. Gunakan easy_install untuk menginstal paket jaraco.windows dan dependensinya. Dari command-prompt:

x

\Python26\scripts\easy_install jaraco.windows

Setelah mengikuti langkah-langkah ini, Anda harus memiliki skrip bernama \ python26 \ scripts \ find-symlinks.exe atau \ python26 \ scripts \ find-symlinks-script.py yang dapat Anda jalankan dengan pathname opsional untuk mencari symlink. Ini akan mencari symlink dan melaporkan hasilnya, masing-masing satu baris. Saya menguji prosedur ini pada instalasi Windows 7 yang bersih.

> cmd /c mklink /d mylink \windows 
symbolic link created for mylink <<===>> \windows
> cmd /c mklink myfilelink \windows\notepad.exe
symbolic link created for myfilelink <<===>> \windows\notepad.exe

> \python26\scripts\find-symlinks
D .\mylink --> \windows
  .\myfilelink --> \windows\notepad.exe
Jason R. Coombs
sumber
0

Cygwin / skrip bash untuk win7

c:\> cat find-dead-links.sh
#!/usr/bin/bash
find . -maxdepth 3 -type l -print0 |
while IFS=   read -r -d $'\0' file ;do
  [[ -e "$file" ]] && continue
  echo "Bad link $file"
done 
mosh
sumber