ฉันจะหา symlink ทั้งหมดใน Windows Vista หรือ 7 ได้อย่างไร


10

ฉันกำลังมองหาวิธีในการค้นหาลิงก์สัญลักษณ์ทั้งหมดในระบบไฟล์ NTFS บน Windows Vista หรือ 7

มันจะดีกว่านี้ถ้าฉันสามารถระบุเป้าหมายที่เฉพาะเจาะจงเพื่อดูว่ามันมีสัญลักษณ์เชื่อมโยงชี้ไปที่ใด แต่วิธีในการค้นหาพวกเขาทั้งหมดนั้นก็ยอดเยี่ยม

คำตอบ:


15

นี่เป็นวิธีที่ดีที่สุดที่ฉันพบ:

dir /a:l /s

แต่มันน่าเกลียด ฉันต้องการรายชื่อที่แสดงหนึ่งไฟล์ต่อบรรทัดในรูปแบบของ target => source หรืออะไรที่คล้ายกัน การ Grepping สำหรับ SYMLINK ทำได้ไม่ดีนักเนื่องจากรูปแบบหลายบรรทัด สวิตช์ / B bare ไม่ได้ให้อะไรนอกจากชื่อไฟล์เป้าหมายเช่นกัน

โปรดทราบว่า grep เป็นเครื่องมือหลายบรรทัด คุณสามารถใช้ - และเพื่อจับทั้งบรรทัดก่อนหน้าและถัดไปและ - เพื่อเพียงแค่จับเส้นถัดไป ตัวอย่างเช่นการกำหนดค่า grep -A10 จะคว้าสิบบรรทัดถัดไปหลังจากค้นหาคำว่า "กำหนดค่า" หากคุณมี 2 อินสแตนซ์ของคำว่ากำหนดค่า 3 บรรทัดแยกกันคุณจะได้รับผลรวมทั้งหมด 14 บรรทัด


5

เนื่องจากการค้นหาทุกอย่างได้รับการเขียนใหม่ (มกราคม 2013) คุณจึงสามารถค้นหาแอตทริบิวต์ได้ ข้อความค้นหา " attrib: L " จะแสดงลิงก์สัญลักษณ์ทั้งหมดในคอมพิวเตอร์ของคุณ แสดงคอลัมน์คุณสมบัติ (Ctrl + Shift + 8) เพื่อจัดเรียงตามแอตทริบิวต์

นอกจากนี้คุณยังสามารถสร้างตัวกรองสำหรับการค้นหาแอททริบิวต์นั้น (ค้นหา, เพิ่มไปยังฟิลเตอร์) หากคุณทำการค้นหาประเภทนั้นบ่อยครั้งหรือต้องการกำหนดแป้นพิมพ์ลัด

ฉันสังเกตเห็นว่าattribเริ่มต้น: การค้นหาดูเหมือนจะล็อคทุกอย่างชั่วคราว แต่เสร็จหลังจากนั้นไม่กี่วินาที ... คุ้มค่ากับการรอคอยเล็กน้อยสำหรับเครื่องมืออันทรงพลัง


2

ลองSageLinks - ยูทิลิตี้ฟรีแวร์โอเพนซอร์สขนาดเล็กสำหรับ Windows สามารถค้นหาและตรวจสอบ symlink ทั้งหมดรวมถึง junctions และทางลัดอีกครั้ง:

ภาพหน้าจอ SageLinks


คุณสามารถเพิ่มข้อมูลบางอย่างเกี่ยวกับลิงค์เมื่อเทียบกับรูปภาพได้หรือไม่? ราคาคุณพบมันได้อย่างไรคุณมีส่วนเกี่ยวข้องกับมันอย่างไร
ลุคชาวแคนาดา

นี่คือลิงค์ไปยังหน้า GitHub พร้อมยูทิลิตี้ฟรีแวร์โอเพนซอร์สซึ่งค้นหา (และตรวจสอบความถูกต้อง) symlink ทั้งหมดใน Windows XP หรือใหม่กว่าตามที่ถามในคำถามนี้
Nikolay Raspopov

เยี่ยมยอดคุณสามารถแก้ไขเพื่อเพิ่มคำตอบของคุณ? ช่วยให้ผู้เข้าชมในอนาคตทราบว่าเป็นคำตอบที่ดีขึ้นเร็วขึ้นหรือไม่
Canadian Luke

ดีและรวดเร็ว แต่ฮาร์ดไดรฟ์ NTFS อย่าง c: / a // b ทำงานได้ดีใน win7; ในขณะที่ sagelink ตั้งค่าสถานะว่าไม่ถูกต้อง Win7 อนุญาตให้ใช้ทั้งเครื่องหมายทับ, แบ็กสแลช, สแลชพิเศษ
mosh

ไม่ได้รับอนุญาต. โปรดอธิบายว่าคุณสร้างลิงก์ดังกล่าวได้อย่างไร
Nikolay Raspopov

2

คุณสามารถลองใช้เครื่องมือฟรีJunction โดย SysInternals

หากต้องการค้นหา symlink ทั้งหมดในไดรฟ์ให้ไปที่รูทและพิมพ์:

C:\> junction -s -q

-s ต้องผ่านไดเรกทอรีย่อยทั้งหมด

-q จะละเว้นข้อผิดพลาดเช่น "การเข้าถึงถูกปฏิเสธ"

นั่นจะให้คะแนนการแยกวิเคราะห์ทั้งหมดที่ Windows ใช้อยู่ในปัจจุบัน

หากคุณต้องการตรวจสอบว่าไฟล์หรือโฟลเดอร์เฉพาะเป็นจุดแยกวิเคราะห์ใหม่เพียงพิมพ์ชื่อยูทิลิตี้และชื่อไฟล์ / โฟลเดอร์หลังจาก ระวังชื่อโฟลเดอร์เนื่องจากการเพิ่มแบ็กสแลชอาจเปลี่ยนผลลัพธ์

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:\>

0

สำหรับการค้นหาไฟล์บนระบบ Windows ฉันขอแนะนำให้ใช้ทุกอย่าง มันเร็วมากและมีน้ำหนักเบามาก


ทุกอย่างเป็นระเบียบ แต่ดูเหมือนจะไม่สามารถกรองโดย Windows จุดเชื่อมต่อ, symlinks ฯลฯ
wojo

0

ฉันก็กำลังมองหาความสามารถนี้และไม่ได้เห็นที่อื่น ฉันเพิ่มลงในไลบรารี Windows ของฉันสำหรับ Python แล้ว น่าเสียดายที่ถ้าคุณยังไม่ได้เป็นโปรแกรมเมอร์ Python คุณก็มีหลายขั้นตอนในการติดตั้งทุกอย่าง

  1. ดาวน์โหลดPython 2.6.4 และติดตั้ง
  2. ดาวน์โหลดแจกจ่ายการตั้งค่า (ส่วนหนึ่งของการกระจาย ) หรือez_setup (ส่วนหนึ่งของsetuptools ) และเรียกใช้สคริปต์ สิ่งนี้จะติดตั้งหนึ่งในสองตัวจัดการแพคเกจสำหรับ Python ที่แพ็คเกจของฉันต้องการเรียกใช้
  3. ใช้ easy_install เพื่อติดตั้งแพ็กเกจjaraco.windowsและการอ้างอิง จาก command-prompt:

x

\Python26\scripts\easy_install jaraco.windows

หลังจากทำตามขั้นตอนเหล่านี้คุณควรมีสคริปต์ชื่อ \ python26 \ scripts \ find-symlinks.exe หรือ \ python26 \ scripts \ find-symlinks-script.py ซึ่งคุณสามารถดำเนินการด้วยชื่อพา ธ ที่เป็นตัวเลือกเพื่อค้นหา symlink มันจะค้นหา symlink และรายงานผลลัพธ์แต่ละบรรทัด ฉันทดสอบขั้นตอนนี้ในการติดตั้ง Windows 7 ใหม่ทั้งหมด

> 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

0

Cygwin / bash script สำหรับ 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 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.