Skopiowałem wiele plików tylko do odczytu z systemu Windows na komputer Mac. Podczas przeglądania informacji dla każdego pliku za pomocą „Uzyskaj informacje” widzę, że są one zablokowane. Piszę skrypt bash, aby skopiować niektóre pliki i pojawia się błąd „Operacja niedozwolona”. Najpierw muszę odblokować pliki. Ponieważ często ściągam pliki z systemu Windows, chcę, aby mój skrypt odblokował te pliki.
Jakie polecenie terminalu służy do odblokowywania „Zablokowanych” plików w OSX?
macos
command-line
file-attributes
Michael Prescott
źródło
źródło
schg
która jest niezmienną flagą systemu (patrz developer.apple.com/library/mac/documentation/Darwin/Reference/... ) Polecenie wyczyszczenia jest podobne:sudo chflags noschg PATH/TO/LOCKED/FILE
/bin/ls -lO /path/to/file
do wyświetlania systemu macOSflags
na plikach. Zwróć uwagę na pełną ścieżkę do polecenia macOSls
. Jest to potrzebne, jeśli masz zainstalowany GNU Coreutils.Możesz także użyć
SetFile -a l
, nawet jeśli robi to samo, cochflags nouchg
:-a l
resetuje bit dla zablokowanego atrybutu. Możesz zainstalować SetFile, pobierając pakiet narzędzi wiersza poleceń z preferencji Xcode lub z developer.apple.com/downloads .źródło
Jest to przydatne, jeśli chcesz przeszukać cały katalog i odblokować wszystkie pliki.
W terminalu
cd
do kataloguTo polecenie znajduje i wydrukuje ich listę .
To polecenie odblokowuje je .
Możesz użyć pierwszego polecenia, aby dokładnie sprawdzić, czy wszystkie pliki są odblokowane po uruchomieniu drugiego polecenia, voilà!
źródło
Istnieją dwa flagi blokowania, które można ustawić w pliku:
uchg
ischg
. Plik zuchg
ustawioną flagą jest niezmienny dla zwykłych użytkowników, ale może zostać zmieniony przez system. Plik zschg
ustawioną flagą jest niezmienny dla każdego. Obie flagi można ustawić jednocześnie.Aby zobaczyć, które flagi są ustawione w pliku, użyj
To wielka litera o, a nie zero.
Aby definitywnie odblokować plik, musisz go wykonać
tak jakby obie flagi zostały ustawione, a ty usuniesz tylko jedną z nich, nadal będzie zablokowana.
źródło