I want to change permission of each files in a directory. I've been using chmod 777
but its wasting time if I have 50 files.
How to make all files inside directory become rwx
without change them one by one?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communityI want to change permission of each files in a directory. I've been using chmod 777
but its wasting time if I have 50 files.
How to make all files inside directory become rwx
without change them one by one?
chmod -cR 777 *
Will change all the files including subdirectories recursively (R option) including subdirectories, but also report on when it makes a change (c option).
Rather than changing all the files with too wide permissions, you might want to change the ownership instead.
sudo chown -hR tomcat
The line above changes owndership to a tomcat application server, you need to figure out which user your webserver is using. You can easily see that by doing
ps aux
(The h option is for changing the owndership of a symbolic link if encountered, but not the files it linkes to)
What you are doing is more than likely unsafe and the below command should only be invoked if you completely accept the security issues.
find . -type d -exec chmod 777 '{}'* \;
This will recursively go through the current directory and each subdirectory and change the permissions accordingly; if I haven't made it clear enough, this is a very bad idea (777 permissions)
This script will execute the command for all files in the current directory:
sudo find . -name "*" | awk '{print("chmod 777 "$1)}'| /bin/sh
To test the script first, you can just output the statements without piping them to the shell to be executed:
sudo find . -name "*" | awk '{print("chmod 777 "$1)}'
This same pattern using awk is generally useful for performing batch shell commands.