Linux One Liner – Finding Stuff

Let’s say you created a file in your home directory but can’t work out which directory you put it in.

<br /> $ find ~ -name somefile.txt<br />

You can replace ~ (tilda) with a directory e.g. / (slash) for search all locations on your system.

Let’s say you want to find all the JPEG’s you have.
<br /> $ find ~ -name "*.jpg"<br />

Now to improve on this, I know I put a JPEG somewhere in the past few days, give me just the files from the past 3 days.
<br /> $ find . -name "*.jpg" -mtime -3<br />

And what if you only wanted files greater then 2MB
<br /> $ find . -name "*.jpg" -mtime -3 -size +2M<br />

If you want to look at a more detailed listing of the files found, like the format you are familar with using ls, try this.
<br /> $ find . -name "*.jpg" -mtime -3 -exec ls -l {} ;<br />

You can find more then files, lets find all the directories you have.
<br /> $ find ~ -type d<br />

I haven’t added it, but historically you needed to add -print on the end to print the results, seems nowadays this is optional.

I briefly used the -exec option above, I used it for various purposes. Here are a few.
<br /> $ find /backup-location -name "backup.*.tar.gz" -mtime +3 -print -exec rm -f {} ;<br /> $ find . -name CVS -exec rm -rf {} ;<br />

The first I run against my backup directory, that removes the online backups older then 3 days. Of course I’ve also got offline backups.
The second is when I checkout stuff from CVS and I want to prune all the CVS information. NOTE: Using the rm -rf command is very dangerous, you should only use this when you know your stuff. Used in the wrong way you delete everything, if you don’t have backups, there ain’t any UNDO in Linux. Also if you do it as root, you can effectively kill your installation in a split second.

There are other commands that perform various level of finding (e.g. commands via path) and other various stuff. A topic for another time, but to entice you.

<br /> $ which find<br /> $ whereis find<br /> $ locate find<br />

Tagged with: General Linux One Liners

Related Posts

More CPUs or Newer CPUs

In a CPU-bound database workload, regardless of price, would you scale-up or scale-new? What if price was the driving factor, would you scale-up or scale-new? I am using as a baseline the first available AWS Graviton2 processor for RDS (r6g).

Read more

An Interesting Artifact with AWS RDS Aurora Storage

As part of using public datasets with my own Benchmarking Suite I wanted upsize a dataset for larger volume testing. I have always used the INFORMATION_SCHEMA.TABLES data_length and index_length columns as a sufficiently accurate measurement for actual disk space used.

Read more

How long does it take the ReadySet cache to warm up?

During my setup of benchmarking I run a quick test-sysbench script to ensure my configuration is right before running an hour+ duration test. When pointing to a Readyset cache where I have cached the 5 queries used in the sysbench test, but I have not run any execution of the SQL, throughput went up 10x in 5 seconds.

Read more