Perintah untuk membuka kunci file "Terkunci" pada OS X

96

Saya menyalin banyak file read-only dari sistem Windows ke Mac saya. Saat melihat Info untuk setiap file menggunakan "Dapatkan Info", saya dapat melihat mereka Terkunci. Saya sedang menulis skrip bash untuk menyalin beberapa file dan saya mendapatkan kesalahan yang mengatakan "Operasi tidak diizinkan" Jadi, pertama saya harus membuka kunci file. Karena saya akan sering menarik file dari sistem Windows, saya ingin skrip saya membuka kunci file-file ini.

Apa perintah terminal untuk membuka kunci file "Terkunci" di OSX?

Michael Prescott
sumber

Jawaban:

136

Untuk membuka kunci file, Anda dapat menggunakan:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = ubah tanda pada file / folder seperti "terkunci"
  • -R = rekursif atau untuk semuanya dan ikuti direktori dalam direktori yang ditentukan
  • nouchg = berarti file dapat diubah
  • /PATH/= tentu saja adalah jalur ke file yang ingin Anda ubah. Sesuatu seperti: ~/Sites/mysite/directory/with/locked/files/bekerja juga.
Chealion
sumber
1
Sepertinya saya menemukan solusinya saat Anda merespons. Saya juga belajar bahwa -R adalah untuk rekursif. Jadi, untuk membuka kunci semua file di direktori saat ini gunakan <br/> chflags nochg * <br/> dan untuk mengubah hanya satu file <br/> chflags nouchg onefile.txt Lihat: mehtanirav.com/2009/04/16/recursively -unlock-files-on-mac-os-x
Michael Prescott
3
Ada bendera lain yang relevan schgyang merupakan sistem yang tidak dapat diubah (lihat developer.apple.com/library/mac/documentation/Darwin/Reference/… ) Perintah untuk menghapusnya serupa:sudo chflags noschg PATH/TO/LOCKED/FILE
Andy Madge
1
Gunakan /bin/ls -lO /path/to/fileuntuk melihat macOS flagspada file. Perhatikan path lengkap ke perintah macOS ' ls'. Ini diperlukan jika Anda menginstal GNU Coreutils.
Tony Barganski
15

Anda juga dapat menggunakan SetFile -a l, meskipun itu melakukan hal yang sama seperti chflags nouchg:

SetFile -a l file.ext

-a lmenghapus bit untuk atribut yang dikunci. Anda dapat menginstal SetFile dengan mengunduh paket Alat Baris Perintah dari preferensi Xcode atau dari developer.apple.com/downloads .

John T
sumber
Ini adalah metode yang bekerja untuk saya di macOS Sierra dengan beberapa file yang disalin dari mesin Windows. Saya menggunakan: SetFile -al ~ / Documents / Arduino / Sampel / *
callisto
14

Ini berguna jika Anda ingin mencari seluruh direktori dan membuka kunci semua file.

Di terminal cdke direktori

Perintah ini menemukan dan akan mencetak daftar mereka .

$ find . -flags uchg

Perintah ini membuka kunci mereka .

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

Anda dapat menggunakan perintah pertama untuk mengecek apakah semua file tidak terkunci setelah menjalankan perintah kedua, ya ampun!

Mamie McCall
sumber
1
Meskipun ini berfungsi, bisa jadi sangat lambat untuk sejumlah besar file karena memulai proses baru untuk setiap file.
Richard Waite
0

Sebenarnya ada dua flag kunci yang dapat diatur pada file: uchgdan schg. File yang memiliki uchgset bendera tidak dapat diubah oleh pengguna normal tetapi dapat diubah oleh sistem. File yang memiliki schgset bendera tidak dapat diubah oleh siapa pun. Kedua bendera dapat diatur secara bersamaan.

Untuk melihat flag mana yang ditetapkan pada file, gunakan

ls -lO FILE

Itu adalah huruf besar, bukan nol.

Untuk benar-benar membuka kunci file, Anda harus menjalankannya

chflags nouchg,noschg FILE

seolah-olah kedua bendera ditetapkan dan Anda hanya menghapus salah satu dari mereka, itu akan tetap terkunci.

Mecki
sumber