วิธีลบ xattr com.apple.quarantine จากไฟล์. webarchive ทั้งหมดที่มีแอททริบิวต์เสริมนั้น?


13

กระจายไปทั่วระบบไฟล์หลาย ๆ อันฉันมีไฟล์. wechchive มากมายที่ OmniWeb บันทึกไว้ ตัวอย่างเช่น:

sh-3.2$ ls -@ 2012-03-19.webarchive 
2012-03-19.webarchive
sh-3.2$ ls -@l 2012-03-19.webarchive 
-rw-r--r--@ 1 gjp22  staff  3722852 19 Mar  2012 2012-03-19.webarchive
    com.apple.quarantine         26 
sh-3.2$ xattr -l 2012-03-19.webarchive 
com.apple.quarantine: 0000;4f66fcc8;OmniWeb.app;

ไฟล์เหล่านั้นจะถือว่าเป็นจากนักพัฒนาซอฟต์แวร์ ฉันสามารถเปิดแต่ละรายการด้วยการคลิกควบคุม แต่มันน่าเบื่อ

ดังนั้นฉันต้องการคำสั่งซึ่งอาจเกี่ยวข้องกับfind (1)เพื่อลบแอตทริบิวต์เพิ่มเติมทั้งหมด

คำตอบ:


21
find . -iname '*.webarchive' -print0 | xargs -0 xattr -d com.apple.quarantine
  • จะลบ ( xattr -d ) แอ็ตทริบิวต์ส่วนขยายcom.apple.quarantine
  • จากไฟล์ทั้งหมดที่มีนามสกุล. webarchive ( -iname '* .webarchive' )
  • อยู่ในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อย ( . -depthโดยที่ -depth บอกเป็นนัย)
  • การผ่าน xargs ( -print0 | xargs -0 ) เพื่อหลีกเลี่ยงปัญหาเกี่ยวกับชื่อไฟล์ที่มีช่องว่างและอักขระพิเศษอื่น ๆ (เป้าหมายที่คล้ายกันสามารถทำได้โดยลดประสิทธิภาพลงเล็กน้อยโดยใช้find . -iname '*.webarchive' -exec xattr -d '{}' \;)

คำอธิบายเกี่ยวกับประสิทธิภาพที่แตกต่าง:

เมื่อใดก็ตามที่ไวยากรณ์อนุญาตให้ใช้เช่นในกรณีนี้ xargs จะรวบรวมบรรทัดคำสั่งอย่างน้อยหนึ่งบรรทัดเช่น xattr -d com.apple.quarantine /path/to/file1.webarchive /path/to/fileN.webarchive

ในขณะที่ในความเห็นของฉันง่ายต่อการจดจำfind- เฉพาะรุ่นคำสั่งซ้ำทุกครั้ง:xattr -d com.apple.quarantine /path/to/file1.webarchive ; xattr -d com.apple.quarantine /path/to/fileN.webarchive


1
findจะทำเช่นเดียวกันที่มีประสิทธิภาพ filepath-ประกอบถ้าคุณท้ายด้วยแทน\+ \;
Slipp D. Thompson

0

นี่เป็นวิธีอัตโนมัติในการทำสิ่งนี้ให้สำเร็จ:

open automator - เลือก "service"

วางสิ่งนี้

on run {input, parameters}
    tell application "Terminal"
        activate
        set filesString to ""
        repeat with file_ in input
            set filesString to filesString & " " & quoted form of (POSIX path of file_)
        end repeat
        do script "xattr -r -d com.apple.quarantine" & filesString
    end tell
    return input
end run

ตรวจสอบให้แน่ใจว่าได้เลือก "ไฟล์หรือโฟลเดอร์" สำหรับ "บริการที่ได้รับเลือก" ตรวจสอบให้แน่ใจว่าได้เลือก "ตัวค้นหา" สำหรับ "ใน"

จากนั้นกดปุ่มบันทึกและตั้งชื่อให้ไม่มีการรับประกันไปที่โฟลเดอร์หรือไฟล์ที่คุณต้องการลบออกจากการกักกันและคลิกขวาและเลือกไม่รับประกัน

https://forums.macrumors.com/threads/%E2%80%9Cverifying%E2%80%9D-upon-opening-every-file.2065395/page-2#post-25134721

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