The following solution might be a better fit for Super User, but still:
When connecting the machines to a Linux machine, you could mount the drives to specific mount-points in your directory structure. If you do that via a script, you could include a call to the
updatedb script of Locate – a software that ships with most Linux distributions. Additionally make sure that
updatedb script (usually linked from
/etc/cron.daily) does not run when those drives are not connected (to avoid having their content purged).
Then, from the Linux command line, you could simply use
locate myfilename to locate every file including "myfilename" in its name – which would apply e.g. to
myfilename_too.mp4, etc. On which machine/drive the file is located, then becomes obvious by the path returned, e.g.
/mnt/machine1/drive_a/home/myuser/myfilename.txt – provided you organized your mount points accordingly.
- cost: free
- installation: if not pre-installed already, simply use your package manager
- matches full or partly filename
- does however not match wildcards IMHO, and for sure not "soundex" (sounds the same/closely similar, but is spelled differently)