I'm looking for an alternative to Whereisit on Windows to index my files and folders to a filetype and be able to browse the snapshot of the indexed files later.

Please could someone suggest an alternative to Whereisit for Mac?

Whereisit allows indexing drives and saving the index for later use. The indexed file allows browsing the drives as if browsing normally. Files are not saved, only filenames & thumbnails are stored as a directory listing.

Whereisit screenshot

  • We will need much more information to give good recommendations here – asking for "a tool like X" is never giving enough details, even if linked. You should always list your requirements explicitly. Please see How to ask for an alternative to some software and the questions linked to it for details. – Izzy Nov 6 '17 at 22:26
  • Ok. Thanks! I've added a link the whereisit software. – mk117 Nov 9 '17 at 10:58
  • Hm, you missed the even if part – just the link alone is not really sufficient. You shouldn't expect people having first to investigate off-site what it is you're looking for. Rather list your requirements explicitly: What is it the software should do? What features do you need? How much you'd be willing to invest if it comes to paid software? As for the tags chosen: Must the software run on Windows AND Mac on a Macbook? Because that's what they say. – Izzy Nov 9 '17 at 12:57
  • 1
    Ok. Thanks! I'll add more information about the software. – mk117 Nov 9 '17 at 13:06

The Mac has a terminal command whereis which give the location of a file. whereis python gives a location of python. Also which python gives the current acting version of python.

  • Hi! Thanks! Is there any terminal command/script to create a directory + files listing in xml format? Thanks! – mk117 Nov 9 '17 at 10:58

Here's an Applescript that lists the files and folders recursively with options. Source

property script_name : "List Folder Contents"
property script_description : "This script will list a folder's contents returning full paths as strings and limit the list to specific file types. The script can also process subfolders (recursion)."

set the_folder to (choose folder with prompt "Choose a Folder to List:") as Unicode text
set file_types to {} --file types, set to {} and inc_folders to true to just return folders; file types are 4 character codes such as "osas" or "TEXT"

set with_subfolders to my get_boolean("Search subfolders?", {"No", "Yes"})
if with_subfolders = "user cancelled" then return

set inc_folders to my get_boolean("Include folders in the list? (If you only want file names, and not folder names, select \"No\".)", {"No", "Yes"})
if inc_folders = "user cancelled" then return

set use_posix_path to my get_boolean("Return the paths as HFS (Mac-style) or POSIX (UNIX-style)?", {"HFS", "POSIX"})
if use_posix_path = "user cancelled" then return

set return_as_string to my get_boolean("Return the results as an AppleScript list or a string with each file on its own line?", {"List", "String"})
if return_as_string = "user cancelled" then return

set add_to_clipboard to my get_boolean("Copy the results to the clipboard?", {"No", "Yes"})
if add_to_clipboard = "user cancelled" then return

set the_files to get_folder_list(the_folder, file_types, with_subfolders, inc_folders, use_posix_path)

if return_as_string then
    tell (a reference to my text item delimiters)
        set {old_tid, contents} to {contents, return}
        set {the_files_string, contents} to {the_files as Unicode text, old_tid}
    end tell
    copy the_files_string to the_files
end if

if add_to_clipboard then
    if not return_as_string then
        copy the_files to the_files_string
        repeat with i from 1 to (count the_files_string)
            set item i of the_files_string to ("\"" & item i of the_files_string & "\", ")
        end repeat
        set the_files_string to ("{" & (text 1 thru -3 of (the_files_string as Unicode text)) & "}")
    end if
    set the clipboard to the_files_string
end if
return the_files

on get_folder_list(the_folder, file_types, with_subfolders, inc_folders, use_posix_path)
    set the_files to {}
    tell application "Finder" to set folder_list to items of folder the_folder
    repeat with new_file in folder_list
            set temp_file_type to file type of new_file
        on error
            set temp_file_type to "fold"
        end try
        if file_types contains temp_file_type or file_types = {} then
            if use_posix_path then
                set the_files to the_files & {POSIX path of (new_file as Unicode text)}
                set the_files to the_files & {new_file as Unicode text}
            end if
        end if
        if temp_file_type = "fold" then
            if inc_folders and file_types ≠ {} then
                if use_posix_path then
                    set the_files to the_files & {POSIX path of (new_file as Unicode text)}
                    set the_files to the_files & {new_file as Unicode text}
                end if
            end if
            if with_subfolders then set the_files to the_files & my get_folder_list((new_file as Unicode text), file_types, with_subfolders, inc_folders, use_posix_path)
        end if
    end repeat
    return the_files
end get_folder_list

on get_boolean(m, b)
        return (button returned of (display dialog m buttons ({"Cancel"} & b) default button 3 with icon 1) = (b's item 2))
    on error
        return "user cancelled"
    end try
end get_boolean

It is likely that you already have it installed:

         The locate program searches a database for all pathnames which match the
         specified pattern.  The database is recomputed periodically (usually
         weekly or daily), and contains the pathnames of all files which are pub-
         licly accessible.
     The locate program may fail to list some files that are present, or may
     list files that have been removed from the system.  This is because
     locate only reports files that are present in the database, which is typ-
     ically only regenerated once a week by the
     /System/Library/LaunchDaemons/com.apple.locate.plist job.  Use find(1) to
     locate files that are of a more transitory nature.

--excerpt from man locate.

On a system like:

OS, ker|rel, machine: Apple/BSD, Darwin 17.3.0, x86_64
Distribution        : macOS 10.13.2 (17C88), High Sierra
bash GNU bash 3.2.57
locate - ( /usr/bin/locate, 2017-10-25 )

Note that locate reports matches to the entire pathname, so you may get far more output than you were expecting. I usually pipe the output into less or grep.

For example:

$ locate a.out



For a longer list, this would need to be trimmed, viewed with a pager, etc.

Best wishes ... cheers, drl

  • Thanks! I'm using an applescript now for this purpose... Found it here – mk117 Jan 9 '18 at 13:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.