Doing something with the “find” command

Doing something with the “find” command

The find command is one of those utilities that, if you know it well, is one of the most powerful tools in your toolchest. However, with a man page nearly 600 lines long and somewhat bewildering syntax, it’s very intimidating. Sometimes the simplest options you are looking for can be oddly named or unexpected.

I created a series of examples of how to do some very basic stuff with the find command, which is what most people really want to do. Each example builds on the previous one. Once you get comfortable, then you can look at the man page and add new options one at a time to get the hang of it.

# Find a file that contains the string "banana" in the current directory and all subdirectories
find . -name "*banana*"

# Search case insensitively
find . -iname "*banana*"

# Search only in the current directory
find . -maxdepth 1 -iname "*banana*"

# Search at a specific path rather than the current directory
find ~/Library/Logs -maxdepth 1 -iname "*banana*"

# Find files greater created more than two hours ago
find ~/Library/Logs -maxdepth 1 -iname "*banana*" -ctime +120m

# Delete these files (be careful!)
find ~/Library/Logs -maxdepth 1 -iname "*banana*" -ctime +120m -exec rm -rf \{\} \;