Ever come across the problem of needing to chmod a directory and its many, many, sub-directories, but you don’t want to touch any of the files? Maybe it’s the exact opposite, or you need to recursively change the permissions on only files with a specific extension. Well I had a similar problem with one of the RainSoft Letters server backups.
Luckily, I came across a post on movabletripe that dealt with the problem, as well as having some additional find snippets in the comments. The original article is here: Recursively chmod directories only.
find . -type d -exec chmod 755 {} \;
- This will “
find” all directories, starting at “.“, and chmod them to 755.
find . -type f -exec chmod 644 {} \;
- This snippet does the opposite and finds only files. The difference (beside the file permissions) is the “
-type f“, “f” specifies files and “d” directories.
If you check the comments, you’ll find a few additional snippets:
find . -type f -name '*.htm*' -exec chmod 644 {} \;
- This lets you “
find” files (“-type f“) with a specific extension (“-name '*.htm*'“) and chmod them with your desired permission (“-exec chmod 644 {}“).
chmod -R o+rX
- This snippet will recursively chmod “other” (“
o“) permissions with read/eXecutable (“+rX“), and the capital X ensures that directories and files set (user/group permissions) to executable will be properly modified, while ignoring regular (non-executable) files.
July 22, 2008
A couple days ago, RainSoft Letters got a new Linux server. Now it’s time to harden, install everything we need, and move everything over. Just reading that sort of thing gives me a headache. The good part, for anyone curious about web hosting control panels, is that I’ll be setting up Virtualmin and giving it a test drive. Time to see how the half-(GPL’d)-brother of Webmin handles everything I plan to throw at it. I won’t be using the “Pro” version, mind you, I want to know if it’s even worth using this instance of a “pay-for-pro” GPL project.
May 17, 2008