Mam skrypt AppleScript, który uruchamia test warunków skrajnych. Częścią testu jest otwieranie, zapisywanie i zamykanie niektórych plików. W jakiś sposób pliki wykryły „rozszerzone atrybuty”, które uniemożliwiają zapisanie plików. To powoduje, że test warunków skrajnych kończy się niepowodzeniem.
Jak usunąć rozszerzone atrybuty?
macos
attributes
oswoić
źródło
źródło
Odpowiedzi:
Użyj
xattr
polecenia. Możesz sprawdzić rozszerzone atrybuty:i użyj
-d
opcji, aby usunąć jeden rozszerzony atrybut:możesz również użyć
-c
opcji, aby usunąć wszystkie rozszerzone atrybuty:xattr -h
pokaże ci opcje wiersza poleceń, a xattr ma stronę podręcznika man .źródło
-c
nie działa dla mnie (OS X 10.6.8).-d
też nie miało żadnego efektu, chociaż nie narzekało. Musiałem wyraźnie nazwać każdy rozszerzony atrybut tak:xattr -rd <attrname> <folder/file>
(usuwa rekurencyjnie). Aby dowiedzieć się, jakie są obecne atrybuty (prawdopodobnie te same atrybuty w całym drzewie katalogów), skorzystajxattr <dir/file>
z powyższej odpowiedzi.xattr -c
działa dobrze dla mnie (i pomyślnie usunął wszystkie metadane).Usuwanie pojedynczego atrybutu z pojedynczego pliku
Zobacz odpowiedź Bavariousa.
Aby usunąć wszystkie atrybuty rozszerzone z jednego pliku
Użyj
xattr
z-c
flagą, aby „wyczyścić” atrybuty:Aby usunąć wszystkie atrybuty rozszerzone z wielu plików
Aby rekurencyjnie usunąć rozszerzone atrybuty dla wszystkich plików w katalogu, połącz
-c
flagę „wyczyść” z-r
flagą rekurencyjną:Wskazówka dla użytkowników Mac OS X.
Masz długą ścieżkę ze spacjami lub znakami specjalnymi?
Otwórz
Terminal.app
i zacznij pisaćxattr -rc
, dołącz końcową spację, a następnie przeciągnij plik lub folder doTerminal.app
okna, a automatycznie doda pełną ścieżkę z odpowiednim odstępem.źródło
-c
nie działa na OS X 10.5:option -c not recognized
. Używamy jednego do testowania na PowerPC firmy Apple. To wygląda wersji niższego poziomu OS X obsługuje-l
,-p
,-w
i-d
.. textClipping
jak opisano w apple.stackexchange.com/questions/301871/…Spróbuj użyć:
Zajmuje się to rekurencyjnym usuwaniem nieznośnego atrybutu wszędzie.
źródło
Inne rekurencyjne podejście:
źródło
-c
nie działa na OS X 10.5:option -c not recognized
. Używamy jednego do testowania na PowerPC firmy Apple. To wygląda wersji niższego poziomu OS X obsługuje-l
,-p
,-w
i-d
.Odpowiedź (pojedyncze pliki)
1. Zaprezentuj klawisze do wyboru.
2. Wybierz klucz do usunięcia.
3. Ponownie pokaż klucze, aby zobaczyć, że zostały usunięte.
4. Na koniec USUŃ WSZYSTKIE klucze dla określonego pliku
Odpowiedź (wszystkie pliki w katalogu)
1. Zaprezentuj klawisze do wyboru.
2. Usuń określony klucz do KAŻDEGO PLIKU z katalogu
3. Usuń WSZYSTKIE klucze z KAŻDEGO PLIKU w katalogu
Błędy
Chciałem poradzić sobie z błędami, które dostają ludzie. Ponieważ błędy doprowadziły mnie również do szału ... Na Macu, jeśli instalujesz
xattr
w Pythonie, może to oznaczać problem w twoim środowisku.Tak więc w jednym z przykładów, gdzie
-c
nie będzie działać w xargs, jest to, że w bash domyślnie korzystasz z wersji innej niż python.Pracuje z
-c
NIE działa z
-c
Domyślnie moja powłoka / terminal to / usr / local / bin / xattr, ponieważ mój
$PATH
/usr/local/bin:
jest przed,/usr/bin:
który moim zdaniem jest domyślny.Mogę to udowodnić, ponieważ jeśli spróbujesz odinstalować python
xattr
, zobaczysz:Obejścia
Aby naprawić
option -c not recognized
błędy.xattr
który możesz mieć:pip3 uninstall xattr
Terminal
okna i wyjdźTerminal
Terminal
okno.xattr
komendę i powinna już działać.LUB
dla jakichkolwiek
Shell
poleceń wTerminal
Przykład:
Wersja Pythona w
xattr
ogóle nie obsługuje obrazów:Strony man
STRONA PODRĘCZNIKA dla OSX xattr
STRONA PODRĘCZNIKA dla WERSJI Python xattr 0.6.4
Dziękuje za przeczytanie!
źródło