How to find all files beneath the current directory that end with the .jsp extension:
find . -type f -name "*jsp"
How to find all files in the /Users/al directory that end with the .jsp extension:
find /Users/al -type f -name "*jsp"
How to find all the files (no directories) beneath the current directory and run the ls -l command on those files:
find . -type f -exec ls -l {} \;
How to find all the directories (no files) beneath the current directory and run the ls -ld command on those files:
find . -type d -exec ls -ld {} \;
Note that the d option of the ls command is needed there to keep ls from printing the contents of the directory. I often don't want that, I just want to see some attributes of the directory itself.
Find and delete
Here's how to find all files beneath the current directory that begin with the letters Poop and delete them. Be very careful with this command, it is dangerous(!), and not recommended for newbies, especially if you don't have a backup.
find . -type f -name "Poop*" -exec rm {} \;
This one is even more dangerous. It finds all directories named CVS, and deletes them and their contents. Just like the previous command, be very careful with this command, it is dangerous(!), and not recommended for newbies, or if you don't have a backup.
find . -type d -name CVS -exec rm -r {} \;
find and chmod
Here are two examples using the find command and chmod together. This first example finds all files beneath the current directory and changes their mode to 644 (rw-r--r--):
find . -type f -name -exec chmod 644 {} \;
This example shows how to find all directories beneath the current directory and changes their mode to 755 (rwxr-xr-x):
find . -type d -name -exec chmod 755 {} \;
find command aliases
I use the Unix find command so often that I usually have at least one alias created to help cut down on the typing. Here is an alias named ff ("file find"):
alias ff="find . -type f -name "
Once that alias is defined I can invoke it like this:
ff myfile.foo
Don’t forget the ‘locate’ command
If you need to find a file somewhere on the filesystem, but you can't remember where it is, but you can remember part of the filename, the locate command is often faster than the find command. Here's an example showing how to use the locate command to find a file named something like lost-file on my local system:
locate lost-file
0 comments:
Post a Comment