21 votos

¿Cómo eliminar el xattr com.apple.quarantine de todos los archivos .webarchive con ese atributo extendido?

Repartidos en varios sistemas de archivos tengo numerosos archivos .webarchive que fueron guardados por OmniWeb. Así, por ejemplo:

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;

Esos archivos se tratan como de un desarrollador no identificado. Puedo abrir cada uno con un Control-clic pero es tedioso.

Así que me gustaría un comando, probablemente involucrando encontrar(1) , a eliminar todos esos atributos extendidos .

30voto

Ryccardo Puntos 1021
find . -iname '*.webarchive' -print0 | xargs -0 xattr -d com.apple.quarantine
  • eliminará ( xattr -d ) el com.apple.quarantine atributo extendido
  • de todos los archivos con extensión .webarchive ( -nombre '*.webarchive' )
  • situado en el directorio actual y sus subdirectorios ( . -profundidad donde el -profundidad está implícito)
  • pasando por xargs ( -print0 | xargs -0 ) para evitar problemas con los nombres de archivo que contienen espacios y otros caracteres especiales (un objetivo similar puede lograrse con una eficiencia ligeramente reducida utilizando find . -iname '*.webarchive' -exec xattr -d '{}' \; ).

Explicación de la diferencia de eficiencia:

Siempre que la sintaxis lo permita, como en este caso, xargs ensambla una o más líneas de comando como xattr -d com.apple.quarantine /path/to/file1.webarchive /path/to/fileN.webarchive

mientras que el en-mi-opinión más fácil de recordar find -La versión "sólo" repite el comando cada vez: xattr -d com.apple.quarantine /path/to/file1.webarchive ; xattr -d com.apple.quarantine /path/to/fileN.webarchive

2voto

jasonology Puntos 76

La versión de xattr que tengo en mi MacOS 11.6 dice tener un interruptor -r

-r: actuar recursivamente

Por lo tanto, debería ser capaz de utilizar

xattr -d -r file.webarchive

1voto

zoli2k Puntos 1897

Aquí hay una forma más automatizada de lograrlo:

abrir automator - seleccionar "servicio"

pegar esto

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

Asegúrese de que "archivos o carpetas" está seleccionado para "Servicio recibe seleccionado". Asegúrese de que "Finder" está seleccionado para "en"

luego presione guardar y nómbrelo como "unquarantine", vaya a la carpeta o archivo que desea eliminar de la cuarentena y haga clic derecho y seleccione "unquarantine".

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X