Bu uzatılmış öznitelikli tüm .webarchive dosyalarından xattr com.apple.quarantine nasıl kaldırılır?


13

Birden çok dosya sistemine yayılmış OmniWeb tarafından kaydedilmiş çok sayıda .webarchive dosyası var. Yani mesela:

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;

Bu dosyalar, tanımlanamayan bir geliştiricinin dosyası olarak değerlendirilir. Her birini bir Control-click ile açabilirim ama sıkıcı.

Bu nedenle , bu tür tüm genişletilmiş öznitelikleri kaldırmak için muhtemelen find (1) içeren bir komut istiyorum .

Yanıtlar:


21
find . -iname '*.webarchive' -print0 | xargs -0 xattr -d com.apple.quarantine
  • com.apple.quarantine genişletilmiş özniteliğini kaldıracak ( xattr -d )
  • uzantılı tüm dosyalardan ( -iname '* .webarchive' )
  • Geçerli dizinde yer alan ve alt dizini ( . -depth , -depth ima nerede)
  • Xargs geçiyor ( -print0 | xargs -0 ) boşluk ve diğer özel karakterleri içeren dosya isimleri ile sorunları önlemek için, (a benzer amaç kullanarak biraz azaltılmış verimliliği ile yapılabilir find . -iname '*.webarchive' -exec xattr -d '{}' \;).

Verimlilik farkının açıklaması:

Sözdizimi bu durumda olduğu gibi izin verdiğinde, xargs aşağıdaki gibi bir veya daha fazla komut satırını birleştirir xattr -d com.apple.quarantine /path/to/file1.webarchive /path/to/fileN.webarchive

benim görüşüme göre hatırlanması daha kolay find-sadece sürümü her seferinde komutu tekrarlar:xattr -d com.apple.quarantine /path/to/file1.webarchive ; xattr -d com.apple.quarantine /path/to/fileN.webarchive


1
find\+bunun yerine bitirirseniz aynı verimli dosyayolu birleştirme işlemini gerçekleştirir \;.
Slipp D.Thompson

0

İşte bunu başarmanın daha otomatik bir yolu:

otomatı aç - "servis" i seç

bunu yapıştır

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

"Hizmet alındıları seçildi" için "dosya veya klasörlerin" seçili olduğundan emin olun. "İn" için "Bulucu" nun seçili olduğundan emin olun

ardından kaydet'e basın ve karantinaya alma, karantinadan kaldırmak istediğiniz klasöre veya dosyaya gidin ve sağ tıklayın ve karantinaya almayı seçin

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.