Unix Utils for Windows

November 09, 2004
misc

I work with unix operating systems quite a bit. So when I'm using Windows I'm often missing some of the handy little command line unix tools that are ubiquitous to unix but no where to be found on Windows.

Just today I was wanting to use the GNU find utility. The find command on unix lists all the files in a directory recursively. Its really handy because if you need to find out where a file is you just type find /path | fgrep search.file. One thing that frustrates me about the Windows search is that you have to search an entire drive - if I know the file I am looking for is in c:\windows why should I have to search the entire c:\ drive?

So I came across some Native Win32 Ports of some GNU utilities, such as find, grep (as well as fgrep, and egrep). These are nice because you can run them right from the windows command line, so no need to run in an emulator like cygwin.

One thing you need to keep in mind is that some of these utilities might have the same name as some windows utilities, you probably better off renaming these in the case of conflict. For instance Windows comes with a program called find.exe that searches for text inside a file, so I renamed the GNU find to xfind.exe.



Related Entries

8 people found this page useful, what do you think?

Comments

There's also <HREF=http://www.cygwin.com/>cygwin</A>, which can even give you just about everything including X-Windows, gcc, apache, etc but the UnxUtils is much lighter weight on the disk.
If you're talking about the Windows search GUI, the last option under 'Look in:' is 'Browse... '
To search just under a folder and its subdirectories on windows, open windows explorer (windows-E) and then right click on the folder and select "Search ..." from the context menu. Voila.
take also a look at http://gnuwin32.sourceforge.net/
For a more complete *nix to windows port you can try the cygwin.
windows is really annoying sometimes, especially with me being used to using linux, as you're using a computer and it freezes, you press control+alt+f6 then control+alt+f7, and nothing happens
You don't have to search whole drive when you are searching for files. Please look in the search utility in windows again. Your reason to use unix utils is pointless at all. If it is that you can not read or use Windows it is not the right reason. BTW I use them also but not for simple things that can be done by windows utils.
@Pepper: what an utterly pointless comment. Pete was obviously just trying to give a simple example of a more elegant way of doing things. Have you nothing better to do than nit-pick? Who needs a "right reason" to use tools which are more powerful and they are, personally, more comfortable with?
"The find command on unix lists all the files in a directory recursively. Its really handy because if you need to find out where a file is you just type find /path | fgrep search.file." As you may know or not, the 'dir' command on DOS does the same. You just have to read something called HELP (yes it is a command, try HELP DIR), and you'll see that "dir /o/s/b <pattern>" will look for pattern in current dir and its subdirectories...
Reg "if I know the file I am looking for is in c:\windows why should I have to search the entire c:\ drive" As a matter of fact you can right click on the folder you want to begin the search and select search. But I haven't found the win search as reliable ..
Haha thanks. I couldn't for the life of me figure out why all the man-page and wiki-examples I tried just plain did not work, or had wrong args etc. Even though I had the foresight to rename a couple of the other binaries. In 10+ years I've never used "find" in windows. At least I'm not going crazy yet :-)
Your description of 'find' on UNIX/Linux is simplisitc, your example with fgrep is not needed, use instead:

find /path -name search.file
or
find /path -name search.\*

UNIX find can pattern match, filter by type, etc. Windows' "find" is more like UNIX's grep command.

As for the rest of you that suggest using the GUI to find files, you have completely missed the point - the original post is talking about a command line interface, not a GUI. I don't know what the original poster needed to accomplish, but I use find on UNIX as part of a tool-chain to perform more complex tasks, a GUI interface is useless in that context.

In short, nobody can credibly argue that Windows' command line commands are in the same league as those found in UNIX. UNIX (Linux is a flavor of UNIX) was designed as a "workbench" OS, prior to wide spread use of GUI's, probably before GUI's were invented.
I use the grep utility to search within files for a string that I may be looking for. I haven't found an easy way to do this using windows commands. I tried the "find" command from a command prompt, but that does not seem to work very well. Grep works much better.

Post a Comment




  



Spell Checker by Foundeo

Recent Entries



foundeo


did you hack my cf?