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
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
You can just use the -R (recursive) flag.
chmod -R 777 /Users/Test/Desktop/PATH
By using CHMOD yes:
For Recursive file:
chmod -R 777 foldername or pathname
For non recursive:
chmod 777 foldername or pathname
I do not have a Mac OSx machine to test this on but in bash on Linux I use something like the following to chmod only directories:
find . -type d -exec chmod 755 {} \+
but this also does the same thing:
chmod 755 `find . -type d`
and so does this:
chmod 755 $(find . -type d)
The last two are using different forms of subcommands. The first is using backticks (older and depreciated) and the other the $() subcommand syntax.
So I think in your case that the following will do what you want.
chmod 777 $(find "/Users/Test/Desktop/PATH")
IF they Give Path Directory Error!
In MAC
Then Go to Folder Get Info and Open Storage and Permission change to privileges Read To Write