views:

26

answers:

2

In Linux we can use the following command to change permission mode of the files and folders recursively.

find "/Users/Test/Desktop/PATH" -exec * chmod 777 {} \;

how could i do the same for mac as i m getting the following error repeatatively.

find: TEST_FILE: No such file or directory

+2  A: 

You can just use the -R (recursive) flag.

chmod -R 777 /Users/Test/Desktop/PATH
Andrew Vit
+4  A: 

The issue is that the * is getting interpreted by your shell and is expanding to a file named TEST_FILE that happens to be in your current working directory, so you're telling find to execute the command named TEST_FILE which doesn't exist. I'm not sure what you're trying to accomplish with that *, you should just remove it.

Furthermore, you should use the idiom -exec program '{}' \+ instead of -exec program '{}' \; so that find doesn't fork a new process for each file. With ;, a new process is forked for each file, whereas with +, it only forks one process and passes all of the files on a single command line, which for simple programs like chmod is much more efficient.

Lastly, chmod can do recursive changes on its own with the -R flag, so unless you need to search for specific files, just do this:

chmod -R 777 /Users/Test/Desktop/PATH
Adam Rosenfield