Làm cách nào để xóa xattr com.apple.quarantine khỏi tất cả các tệp .webarchive với thuộc tính mở rộng đó?


13

Trải rộng trên nhiều hệ thống tệp Tôi có nhiều tệp .webarchive đã được lưu bởi OmniWeb. Ví dụ:

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;

Những tập tin này được coi là từ một nhà phát triển không xác định. Tôi có thể mở từng cái bằng một lần bấm Control nhưng thật tẻ nhạt.

Vì vậy, tôi muốn một lệnh, có thể liên quan đến find (1) , để xóa tất cả các thuộc tính mở rộng như vậy .

Câu trả lời:


21
find . -iname '*.webarchive' -print0 | xargs -0 xattr -d com.apple.quarantine
  • sẽ xóa ( xattr -d ) thuộc tính mở rộng com.apple.quarantine
  • từ tất cả các tệp có phần mở rộng là .webarchive ( -iname '* .webarchive' )
  • nằm trong thư mục hiện tại và các thư mục con của nó ( . -depth , trong đó -depth được ngụ ý)
  • đi qua xargs ( -print0 | xargs -0 ) để tránh các vấn đề với tên tệp chứa khoảng trắng và các ký tự đặc biệt khác (mục tiêu tương tự có thể được thực hiện với hiệu quả giảm nhẹ bằng cách sử dụng find . -iname '*.webarchive' -exec xattr -d '{}' \;).

Giải thích về sự khác biệt hiệu quả:

Bất cứ khi nào cú pháp cho phép, chẳng hạn như trong trường hợp này, xargs sẽ tập hợp một hoặc nhiều dòng lệnh như xattr -d com.apple.quarantine /path/to/file1.webarchive /path/to/fileN.webarchive

trong khi findphiên bản theo ý kiến ​​của tôi dễ nhớ hơn - phiên bản chỉ lặp lại mỗi lần:xattr -d com.apple.quarantine /path/to/file1.webarchive ; xattr -d com.apple.quarantine /path/to/fileN.webarchive


1
findsẽ thực hiện lắp ráp filepath hiệu quả tương tự nếu bạn kết thúc nó \+thay vì \;.
Slipp D. Thompson

0

đây là một cách tự động hơn để thực hiện điều này:

mở tự động hóa - chọn "dịch vụ"

dán cái này

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

Đảm bảo "tệp hoặc thư mục" được chọn cho "Dịch vụ nhận được chọn". Đảm bảo "Finder" được chọn cho "in"

sau đó nhấn lưu và đặt tên là không kiểm dịch, chuyển đến thư mục hoặc tệp bạn muốn xóa khỏi kiểm dịch và nhấp chuột phải và chọn không kiểm dịch

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.