[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: chmod + chown
On Monday, March 29, 2004, at 02:03 PM, john doe wrote:
> is there any way to do a recursive chmod where it only modifies the
> file if it has a certain owner and group? i dont want to have to
> resort to shell scripting if i dont have to
In the simplest case, find traverses a filesystem tree and prints all
the "files" (files, directories, devices, fifos, etc.) For example:
$ find
You can also specify a folder or list of folders. For example, to
traverse both /etc, /var, and the current directory:
$ find /etc /var .
You can also specify a test condition. That is, if a "file" passes a
test, it will get listed. For example, to find only regular files (not
directories nor devices nor fifos) in the directory tree rooted in the
current folder:
$ find . -type f
You can also specify a series of test conditions. Those tests will be
AND'ed by default. For example, you want to find all files that are
owned by me:
$ find . -type f -user rwcitek
Lastly, since the output is a list of files, you can pipe it to other
programs. For example, to change the permissions to 0700 on all files
owned by me:
$ find . -type f -user rwcitek | xargs chmod 0700
Find comes with a whole bunch of other goodies, including operators,
options, tests, and actions. You can even do grouping. For a brief
listing type 'find --help' For a more detailed description of options,
see 'man find'
> i can with chown, which rocks, but i would like to be able to do it
> with chmod.
>
> also is there an easy way to do something like chmod 754 for
> directories but 755 for files? (not necessarily those 2 sets of
> permissions, but one set of permission bits for folders and another
> for files. that is more what i am after
Yes. This is exactly what find is for:
$ find . -type d -print0 | xargs -0 chmod 0754
$ find . -type f -print0 | xargs -0 chmod 0755
The -print0 option in find and the -0 option in xargs properly handles
filenames that have spaces in them.
Let us know what you decided to do and how things worked out for you.
Regards,
- Robert
-
To unsubscribe, send email to majordomo@silug.org with
"unsubscribe silug-discuss" in the body.