it-swarm.asia

OS X'te "Kilitli" işlev kilidini açmak için komut

Windows sisteminden Mac bilgisayarıma birçok salt okunur dosya kopyaladım. "Bilgi Al" ı kullanarak her bir dosya için Bilgileri görüntülerken, Kilitli olduklarını görebilirim. Bazı dosyaların üzerine kopyalamak için bir bash betiği yazıyorum ve "İşleme izin verilmiyor" yazan bir hata alıyorum. İlk önce dosyaların kilidini açmam gerekiyor. Dosyaları sık sık Windows sisteminden çekeceğim için, komut dosyamın bu dosyaların kilidini açmasını istiyorum.

OSX'te "Kilitli" dosyaların kilidini açmak için terminal komutu nedir?

90
Michael Prescott

Dosya kilidini açmak için şunları kullanabilirsiniz:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = "kilitli" gibi dosya/klasörlerdeki bayrakları değiştir
  • -R = özyinelemeli veya her şey için ve belirtilen dizindeki dizinleri izleyin
  • nouchg = dosyanın değiştirilebileceği anlamına gelir
  • /PATH/ = elbette değiştirmek istediğiniz dosyaların yoludur. Gibi bir şey: ~/Sites/mysite/directory/with/locked/files/ de çalışır.
130
Chealion

SetFile -a l ile aynı şeyi yapsanız bile, chflags nouchg kullanabilirsiniz:

SetFile -a l file.ext

-a l, kilitli özniteliğin bitini ayarlar. Komut Satırı Araçları paketini Xcode'un tercihlerinden veya developer.Apple.com/downloads adresinden indirerek SetFile uygulamasını yükleyebilirsiniz.

15
John T

Bu, tüm bir dizini aramak ve tüm dosyaların kilidini açmak istiyorsanız faydalıdır.

Terminalde cd dizine

Bu komut bulur ve olacaktır onların listesini yazdırır.

$ find . -flags uchg

Bu komut onları açar.

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

İkinci komutu çalıştırdıktan sonra tüm dosyaların kilidinin açıldığını tekrar kontrol etmek için ilk komutu kullanabilirsiniz, voilà!

14
Mamie McCall

Aslında bir dosyada ayarlanabilecek iki kilit bayrağı vardır: uchg ve schg. uchg flag kümesine sahip bir dosya normal kullanıcılar tarafından değiştirilemez ancak sistem tarafından değiştirilebilir. schg flag kümesine sahip bir dosya herkes tarafından değiştirilemez. Her iki bayrak aynı anda ayarlanabilir.

Bir dosyada hangi bayrakların ayarlandığını görmek için

ls -lO FILE

Bu sıfır değil, büyük bir harf.

Bir dosyanın kesinlikle kilidini açmak için, yürütmeniz gerekir

chflags nouchg,noschg FILE

her iki bayrak da ayarlanmış ve bunlardan yalnızca birini kaldırmışsınız gibi hala kilitlenecek.

0
Mecki