If you are looking to find more tools, the GNU project (GNU's Not Unix) maintains a directory, a website listing categorized links to various free-software tools (which they consider useful) called the GNU Directory.
Also try sites such as Sweet Code which offer mailing lists of useful tools which they find.
Many of the tools listed in this guide are part of a package of tools, such as diffutils which contains the various tools used to find differences between files, such as diff, sdiff, diff3, cmp. Most small tools are bundled together in this fashion. Most major distribution's will offer a search function to help you search the packages by file, you can of course do this via the command-line interface or a GUI.
If you need to search the distribution's available packages via the command-line, the method will vary depending on the distribution you are using, see the subsections below or consult your distribution's documentation (or of course the internet):
To find where a particular file came from use urpmf.
The results are often overwhelming as this particular command will take a string and list every file of every package in it's database that contains the particular keyword (ie. both uninstalled and installed packages). To refine the results you may want to add a pipe to it and send it through grep -w file_name (the -w option will only show you only exact (whole word) matches). How you would do this is shown below:
urpmf file_name | grep -w file_name
For more information on the urpm* commands, please refer to the tip towards the end of this section: Section 20.1.
To find which package a particular file came from use rpm with the -qf option.
rpm -qf /path/to/the/file
This will find which package the file came from. You need to use rpm -qf not with a keyword but with the location of the actual file. To find more information on the particular package listed use rpm with the -qi option.
rpm -qi package_name
Note that the package name is the name of the package without the .arch.rpm (often .i386.rpm) extension on the end.
For more information on the usage of rpm, please refer to this section Section 20.1.
To find where a particular file came from use dpkg with the -S option.
There are two ways to do this:
dpkg -S file_name
dpkg -S /path/to/file
You may also like to try (if it's installed, it's generally a lot faster than the dpkg search):
dlocate -S file_name
For more information on dpkg and dlocate please refer to the relevant manual pages and online sources of information.
Packages can be found via the internet utilizing sites such as:
RPMFind for RPM based packages.
Debian Package Listfor deb packages.
RPMSeek, this site intends to index Debian packages as well as RPM.
TuxFinder where you can search for deb, rpm, tgz, iso and even documentation.