Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I copied a lot of read-only files from a Windows system to my Mac. When viewing the Info for each file using "Get Info", I can see they are Locked. I'm writing a bash script to copy over some files and I'm getting an error that says "Operation not permitted" So, first I need to unlock the files. Since I'll be pulling files from the Windows system often, I want my script to unlock these files.

What is the terminal command to unlock "Locked" files on OSX?

share|improve this question
add comment

3 Answers 3

up vote 34 down vote accepted

To unlock files you can use:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = change flags on files/folders such as "locked"
  • -R = recursive or for everything and follow directories within the specified directory
  • nouchg = means the file can be changed
  • /PATH/ = of course is the path to the files you want to change. Something like: ~/Sites/mysite/directory/with/locked/files/ works as well.
share|improve this answer
1  
Looks like I found the solution just as you were responding. I also learned that the -R is for recursive. So, to unlock all files in the current directory use<br/> chflags nochg *<br/> and to change just one file<br/> chflags nouchg onefile.txt See: mehtanirav.com/2009/04/16/recursively-unlock-files-on-mac-os-x –  Michael Prescott Sep 14 '09 at 2:37
add comment

You can also use SetFile -a l, even though it does the same thing as chflags nouchg:

SetFile -a l file.ext

-a l unsets the bit for the locked attribute. You can install SetFile by downloading the Command Line Tools package from Xcode's preferences or from developer.apple.com/downloads.

share|improve this answer
add comment

This is helpful if you want to search an entire directory and unlock all files.

In the terminal cd to the directory

This command finds and will print a list of them.

$ find . -flags uchg

This command unlocks them.

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

You can use the first command to double check that all the files are unlocked after running the second command, voilà !

share|improve this answer
add comment

protected by slhck Jul 24 '13 at 7:36

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.