วิธีแสดงรายการไฟล์ทั้งหมดด้วย Finder Comment โดยใช้ unix


1

ฉันจะหาพา ธ ของไฟล์ทั้งหมดโฟลเดอร์ที่มีความคิดเห็น Finder และความคิดเห็นได้อย่างไร

เช่นนี้: /path/here/file.txt ความคิดเห็น TAB finder อยู่ที่นี่ / path4 / here2 / โฟลเดอร์ความคิดเห็น TAB finder อยู่ที่นี่

ฉันสามารถใช้สิ่งนี้เพื่อค้นหารายการทั้งหมดที่มีความคิดเห็น:

mdfind kMDItemFinderComment == '*'

แล้วค้นหาความคิดเห็น:

mdls -name kMDItemFinderComment pathhere

แต่มีวิธีที่จะได้รับทั้งหมดในคำสั่งเดียวหรือไม่


สร้างนามแฝงถาวรสำหรับคำสั่งที่รวมกันโดยไม่รวมเส้นทางของเส้นทาง
แจ็คโพดำทั้งหมด

คำตอบ:


2

นี่จะเป็นการหลอกลวง:

 find . -xattrname com.apple.metadata:kMDItemFinderComment \
        -exec printf %s\\t {} \; \
        -exec mdls -name kMDItemFinderComment -raw {} \; \
        -exec echo \;

ทำลายมันลงเล็กน้อย:

  • findดูผ่านไดเรกทอรีปัจจุบัน ( .) (และทุกอย่าง "ด้านล่าง") สำหรับไฟล์ที่มีแอตทริบิวต์ขยาย ( -xattrname) com.apple.metadata:kMDItemFinderCommentเรียกว่า
  • ตามที่พบแต่ละไฟล์:
    • -execอาร์กิวเมนต์แรกใช้printfเพื่อพิมพ์พา ธ ของไฟล์และ\tอักขระแท็บ ( )
    • ที่สอง-execทำงานmdlsเพื่ออ่านความคิดเห็นที่เกิดขึ้นจริง
    • ที่สาม-execเพิ่งพิมพ์อักขระขึ้นบรรทัดใหม่ ( \n)

โปรดทราบว่าfindคำสั่งจะเรียกซ้ำดังนั้นการแก้ปัญหานี้จะมองผ่านไดเรกทอรีย่อยเช่นกัน

หากคุณต้องการเส้นทางที่แน่นอนให้ใช้find `pwd`แทนfind .


0

ไม่ - คุณจะต้องสคริปต์ทั้งสองคำสั่งพร้อมกันและวนรอบรายการไฟล์ มันค่อนข้างน่าเบื่อเพราะคุณจะต้องจัดการช่องว่างในชื่อไฟล์และอักขระยูนิโค้ดรวมทั้งอาจค้นหาไฟล์ 100,000 ไฟล์ที่ตรงและหลีกเลี่ยงการเลื่อนตัวแปรของคุณในช่วงความยาวสูงสุด

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

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