2009-09-14 02:15:23 +0000 2009-09-14 02:15:23 +0000
102
102

Polecenie do odblokowania "zablokowanych" plików na OS X

Skopiowałem wiele plików tylko do odczytu z systemu Windows na mój Mac. Podczas przeglądania informacji o każdym pliku za pomocą “Get Info”, widzę, że są one zablokowane. Piszę skrypt bash, aby skopiować niektóre pliki i dostaję błąd, który mówi “Operacja niedozwolona” Tak więc, najpierw muszę odblokować pliki. Ponieważ będę często wyciągał pliki z systemu Windows, chcę, aby mój skrypt odblokował te pliki.

Jakie jest polecenie terminala, aby odblokować “Zablokowane” pliki na OSX?

Odpowiedzi (4)

144
144
144
2009-09-14 02:26:55 +0000

Aby odblokować pliki można użyć:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = zmienić flagi na plikach/folderach takie jak “locked”
  • -R = rekurencyjnie lub dla wszystkiego i podążać za katalogami w obrębie określonego katalogu
  • nouchg = oznacza, że plik może być zmieniony
  • /PATH/ = oczywiście jest ścieżką do plików, które chcesz zmienić. Coś w stylu: ~/Sites/mysite/directory/with/locked/files/ działa równie dobrze.
15
15
15
2013-09-20 03:23:10 +0000

Jest to pomocne, jeśli chcesz przeszukać cały katalog i odblokować wszystkie pliki.

W terminalu cd do katalogu

To polecenie je znajdzie i wydrukuje ich listę.

$ find . -flags uchg

To polecenie odblokuje je.

$ find . -flags uchg -exec chflags nouchg {} \;

Możesz użyć pierwszej komendy do dwukrotnego sprawdzenia, czy wszystkie pliki są odblokowane po uruchomieniu drugiej komendy, voila !

15
15
15
2009-09-14 02:30:00 +0000

Możesz również użyć SetFile -a l, mimo że robi to samo co chflags nouchg:

SetFile -a l file.ext

-a l unsets the bit for the locked attribute. Możesz zainstalować SetFile, pobierając pakiet Command Line Tools z preferencji Xcode lub z developer.apple.com/downloads .

2
2
2
2019-05-15 08:32:33 +0000

Istnieją właściwie dwie flagi blokady, które mogą być ustawione na pliku: uchg oraz schg. Plik, który ma ustawioną flagę uchg jest niezmienny dla normalnych użytkowników, ale jest modyfikowalny przez system. Plik, który ma ustawioną flagę schg jest niezmienny dla każdego. Obie flagi mogą być ustawione w tym samym czasie.

Aby zobaczyć, które flagi są ustawione na pliku, użyj

ls -lO FILE

To jest duża litera o, nie zero.

Aby definitywnie odblokować plik, musiałbyś wykonać

chflags nouchg,noschg FILE

ponieważ jeśli obie flagi były ustawione i usuniesz tylko jedną z nich, plik nadal będzie zablokowany.