I had heard about Everything before and never really gave it a second glance.

But today, searching through hundreds of thousands of files for a specific word in the files' name took forever. I decided to see if there was a better way to do this so I would not have to wait for my computer to finish the search before I could have a complete list.

I once again ran into Everything on Google. This time I downloaded it. It was a portable 272KB file located here. I have tried good old Microsoft's indexing tool once or twice in the past decade and long story short it blows big time!

I was hoping Everything was going to be a totally different story. According to what I read Everything ONLY searches through file names and that makes it very fast. But let's actually put it through the tests.

I extracted a 589KB file from the zip file and ran it. This is what I saw:

everything1

Hmm.....everything looks pretty empty!

So I am going to try and find a group of images from my latest eBook on Photoshop. I think all the images start with Photoshop. I simply typed Photoshop and watched as my search results populated as I typed. I scrolled down a little bit past my program files from Photoshop and sure enough there were my images on my desktop in a folder called photoshop. Very nice and very fast.

image

How can this little app work so quickly and efficiently? I have no idea! So I opened up my task manager and looked for Everything. After the full search Everything was using around 20MB of memory. Not bad at all!  So far I am loving it. I decided to poke around their website and see what else Everything can do. I found this interesting tidbit under their FAQ's:

How long will it take to index my files?

"Everything" only uses file and folder names and generally takes a few seconds to build its database. A fresh install of Windows XP SP2 (about 20,000 files) will take about 1 second to index. 1,000,000 files will take about 1 minute.

Everything uses RegEx (Regular Expressions) in its search bar to help you pinpoint exactly what you are looking for. Once you get the hang of it you will find it exceptionally useful in lots of places. From the program's help file here is all the expressions that are supported and what they do:

| - 
A vertical bar separates alternatives. For example,
gray|grey
can match "gray" or "grey".

()- 
Parentheses are used to define the scope and precedence of the operators (among other uses). For example,
gray|grey
and
gr(a|e)y
are equivalent patterns which both describe the set of "gray" and "grey".

? - 
The question mark indicates there is zero or one of the preceding element. For example,
colou?r
matches both "color" and "colour".

* - 
The asterisk indicates there are zero or more of the preceding element. For example,
ab*c
matches "ac", "abc", "abbc", "abbbc", and so on.

+ - 
The plus sign indicates that there is one or more of the preceding element. For example,
ab+c
matches "abc", "abbc", "abbbc", and so on, but not "ac".

. - 
Matches any single character except newlines (exactly which characters are considered newlines is flavor, character encoding, and platform specific, but it is safe to assume that the line feed character is included). Within POSIX bracket expressions, the dot character matches a literal dot. For example,
a.c
matches "abc", etc., but
[a.c]
matches only "a", ".", or "c".

[ ] - 
A bracket expression. Matches a single character that is contained within the brackets. For example,
[abc]
matches "a", "b", or "c".
[a-z]
specifies a range which matches any lowercase letter from "a" to "z". These forms can be mixed:
[abcx-z]
matches "a", "b", "c", "x", "y", and "z", as does
[a-cx-z]

[^ ]- 
Matches a single character that is not contained within the brackets. For example,
[^abc]
matches any character other than "a", "b", or "c".
[^a-z]
matches any single character that is not a lowercase letter from "a" to "z". As above, literal characters and ranges can be mixed.

^ - 
Matches the starting position within the string. In line-based tools, it matches the starting position of any line.

$ - 
Matches the ending position of the string or the position just before a string-ending newline. In line-based tools, it matches the ending position of any line.

{m,n} - 
Matches the preceding element at least m and not more than n times. For example,
a{3,5}
matches only "aaa", "aaaa", and "aaaaa". This is not found in a few, older instances of regular expressions.

Using these expressions I tried the following search to look for any items with AskTheAdmin in the jpg's file name or Karl in the jpg's file name. I am sure you can already imagine how powerful this is!

image

Let's take a look at the program's options.

image

On the General screen you will find the usual startup options along with some cool features like being able to run multiple instances of Everything or multiple windows of the same instance as well as hot-keys.

image
image

Everything only works on NTFS volumes so if you check the volumes tab and nothing shows up - your drives are probably not NTFS and will need to be upgraded.

image

The exclude option tab allows you to specify folders or files to be excluded including hidden or system files.

image

ETP is a feature that allows for remote searching of your local database. More information on this topic can be found here.

image

And HTTP offers you the ability to open up a web server on your local machine and allow queries against your local database like so:

image

You can open this up to the outside as well and search your PC from home without having to remote desktop in. And with some crafty FTP'ing you might be able to hand roll yourself a nice file solution.

Anyone using Everything or something similar? We would love to hear about it in the comments!