วิธีค้นหานามแฝงทั้งหมดภายในระบบไฟล์ที่กำหนด?


6

ฉันต้องการหลีกเลี่ยงปัญหาในอนาคตกับนามแฝง (ไฟล์ว่างที่สร้างขึ้นด้วย Finder ไม่ต้องสับสนกับลิงก์สัญลักษณ์) ฉันอาจเคยใช้ในอดีตและอาจอยู่ในระบบ ฉันค้นพบปัญหามากมายกับไฟล์ประเภทนี้:

  • เพื่อสำรองข้อมูล (พร้อมrsync)
  • เพื่อโอนย้ายบนระบบไฟล์อื่น (ด้วยcpหรือrsync)
  • การโยกย้ายในระบบ (กับอีกrcp, scpหรือrsync) ...

ตอนนี้ฉันต้องการที่จะกำจัดพวกเขาทั้งหมดหรืออย่างน้อยก็จะรู้ขนาดของความเสี่ยงที่ฉันยังมีกับส่วนที่เหลือ


ฉันจะค้นหาไฟล์ประเภทนามแฝงทั้งหมดภายในระบบไฟล์ที่กำหนดโดยใช้บรรทัดคำสั่ง (สคริปต์เชลล์) โดยใช้ตัวอย่าง:

  • mdfind
  • find

findฉันแก้ไขคำตอบของฉันรวมถึงการใช้
user3439894

ลิงก์สัญลักษณ์ไม่ใช่แหล่งที่มาของปัญหา คำถามของฉันเน้นที่นามแฝง
แดน

2
หากเป็นเพียงนามแฝงที่สร้างใน Finder แล้วฉันจะใช้mdfindเนื่องจากมันเหมาะกว่าที่จะแสดงนามแฝงที่findไม่ใช่ ในขณะที่findสามารถใช้-xattrnameกับcom.apple.FinderInfoหรือcom.apple.ResourceForkแอตทริบิวต์เพิ่มเติมทั้งสองที่กำหนดให้กับนามแฝงที่สร้างใน Finder อย่างไรก็ตามยังมีไฟล์อื่น ๆ อีกมากมายที่มีคุณลักษณะเพิ่มเติมเหล่านี้จึงทำให้ยากที่จะแยกแยะความแตกต่างระหว่างนามแฝงหรือไม่ใช้findคำสั่ง ฉันไม่ได้บอกว่าไม่มีทางด้วยfindแต่ฉันไม่รู้ว่าอยู่นอกหัวของฉัน
user3439894

คำตอบ:


7

วิธีค้นหานามแฝงด้วยmdfindในเทอร์มินัล:

mdfind kMDItemKind="Alias"

นี่จะพิมพ์รายการชื่อแทนพร้อมชื่อพา ธ แบบเต็ม

หมายเหตุ: นี่เป็นนามแฝงที่สร้างใน Finder ไม่ใช่ลิงก์เชิงสัญลักษณ์ที่สร้างขึ้นด้วยlnคำสั่งจาก Terminal หรือสคริปต์

หากต้องการใช้findเพื่อค้นหาลิงก์สัญลักษณ์ที่สร้างโดยตัวอย่างlnให้ดูที่:man find

ตัวอย่าง: find / -type l

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

man findที่จะขยายตัวอย่างคำสั่งพื้นฐานอ่าน

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