Search
files with
find
and
delete them with exec
,
this is probably one of the most common actions with exec, and you
should not use exec for this, read later, here are some examples of
common uses:
1) List all files
starts with “abc”:
find / -name "abc*" -exec /bin/ls {} \;
|
2) Search all
files start with “abc” and delete them:
find / -name "abc*" -exec /bin/rm {} \;
|
3) Search all
files with size > of 10 MB and delete them:
find / -size +10M -exec /bin/rm {} \;
|
Sometimes
some programs goes wild and create thousands of small files into one
directoy, in this case you cannot use a simple
rm
*
because
the shell would not be able to manages the expansion of the character
* with all these file names, but you can use find
to
delete all files in a directory one by one. find . -exec /bin/rm {} \;
|
You
should NOT use these examples, In newer verison you will find the
option -delete which is safer then “-exec /bin/rm {} ;”. For
example:
find / -name "*.old" -delete
|
In
older Unix system you could not have the -delete option, and so you
have no choice but to use the -exec action.
4) To change permissions on files recursively, leave directories alone.
find ./ -type f -exec chmod 755 {} \;
|
5) With the option
-type f you select only the files and after that is easy to do a
chmod on them. Recursively
change the ownership of all the files from old user to new user
find / -user test_old -type f -exec chown test_new {} \;
|
6) Recursively
change the permissions of all, and only, the directory
find . -type d -exec chmod 655 {} \;
|
In
this example I’ve used again the option
-type
with d
parameter
to identify only the directories.
No comments:
Post a Comment