Durante l'esecuzione
xattr -d com.apple.quarantine /Applications/XXX.app
a volte mi capita
xattr: /Applications/XXX.app: No such xattr: com.apple.quarantine
Come si verifica se esiste un attributo con nome per un dato XXX.app?
Il seguente comando xttar
comando fa sì che vengano visualizzati sia i nomi degli attributi che i valori corrispondenti, se presenti.
xattr -l file
Puoi anche usare il ls
comando :
ls -@ file
Detto questo, il messaggio ... No such xattr: com.apple.quarantine
è un messaggio non fatale, il che significa che non è necessario renderlo condizionale e se il tuo obiettivo è rimuovere l'attributo esteso com.apple.quarantine
esteso da un molti file contemporaneamente in una determinata directory , quindi cd
nella directory di destinazione e utilizzare il seguente comando :
for f in *; do xattr -dr com.apple.quarantine "$f" 2>/dev/null; done
Il precedente one-liner eliminerà il com.apple.quarantine
attributo esteso da ogni file che lo ha e agirà come se fosse specificato anche l'intero contenuto della directory in modo ricorsivo (in modo che ogni file nel l'albero delle directory è attivo), questo è l'opzione -r
, mentre non mostra errori per i file che non hanno l'attributo esteso di destinazione. (Questo è ciò che fa il 2>/dev/null
.)
Non esiste un modo diretto per verificare l'esistenza di uno specifico attributo esteso. Nel tuo caso potresti, con
file=/path/to/file
attr=attribute
fai qualcosa di simile
if [[ $(xattr "$file") = *$attr* ]]; then
xattr -d $attr "$file"
fi
o, come one-liner
[[ $(xattr "$file") = *$attr* ]] && xattr -d $attr "$file"
Leggi altre domande sui tag macos extended-attributes