This page is about different ways to locate a file anywhere on your file system.
Emacs command ‘find-file’ (‘C-x C-f’) finds a file within a given directory – you can change directory, but only one directory is searched at a time. What do you do if you don’t know what directory to search? The answer is here.
- Unix or GNU/Linux
‘find’ command – Use ‘find’ from within Emacs – commands ‘find-dired’, ‘find-name-dired’. See node “Dired and ‘find’” in the EmacsManual.- Library find-dired+.el adds a Run find Command submenu to the Dir menu of DiredPlus, with enhanced versions of the Emacs
‘find-*dired’ commands.
- Emacs front ends to Unix or GNU/Linux
‘locate’ command, which maintains a database of file locations in your file system:- Standard Emacs library
locate.el, with Emacs command ‘locate’. - GlobalFF – library
globalff.el, shows matching files with ‘locate’ command as you type - `icicle-locate’ – Icicles multi-command wrapper for
‘locate’ program. - LocateMode – library
gse-locate.el.
- Everything – Bridge to MS Windows desktop-search engine Everything: [1]
- FileNameCache – You load file names into a (non-persistent) cache, which you can subsequently use for finding files with
‘find-file’. See section “File Name Cache” in the EmacsManual - FindFileInRepository – Autocomplete file names inside of projects. Uses
git/mercurial/etc to provide fast auto-completion. Automatically ignores files specified in .gitignore/.hgignore, etc. Supports git, mercurial, darcs, bazaar, monotone, and svn. - gds – Uses Google Desktop Search to find files to open. Current interfaces to the hits are
‘iswitchb’ and ‘dired’. - glimpse.el – Search for files with Glimpse
- Icicles - File-Name Input – Provides Icicles regexp completion for commands like
‘find-file’. You can match any part(s) of a file name, including parts of any of its ancestor directories. No need for another, OS program, such as ‘find’ or ‘locate’, but if you have ‘locate’ then Icicles takes advantage of it. Match also against file mofication date. Fuzzy completion too. - Icicles - Persistent Completions – Save a set of completion candidates persistently. Create a persistent image of all of the files in your file system. Retrieve it quickly anytime, to find a file.
Comparison of Approaches
- All of the approaches let you glob file names (use shell wildcards).
- FindFileInRepository is the only approach that takes advantage of version control systems such as git, mercurial and others.
- Icicles is the only approach that does not require you to use an operating-system command such as
‘find’ or ‘locate’. - Icicles is the only approach that lets you save a cache of file names persistently. In Icicles, you can have any number of cache files, and they can contain any strings to use as completion candidates – you are not limited to file names.
- Icicles and GlobalFF are the only approaches that let you use a regexp to match a file name, and to let you match parts of directory names.
- Icicles is the only approach that lets you also find files by (regexp) matching last modification date.
CategoryFiles CategoryDirectories CategoryCompletion CategoryProgrammerUtils