table of contents
FD(1) | General Commands Manual | FD(1) |
NAME¶
fd - find entries in the filesystem
SYNOPSIS¶
fd [-HIEsiaLp0hV] [-d depth] [-t filetype] [-e ext] [-E exclude] [-c when] [-j num] [-x cmd] [pattern] [path...]
DESCRIPTION¶
fd is a simple, fast and user-friendly alternative to find(1).
OPTIONS¶
- -H, --hidden
- Include hidden files and directories in the search results (default: hidden files and directories are skipped).
- -I, --no-ignore
- Show search results from files and directories that would otherwise be ignored by .gitignore, .ignore or .fdignore files.
- --no-ignore-vcs
- Show search results from files and directories that would otherwise be ignored by .gitignore files.
- -s, --case-sensitive
- Perform a case-sensitive search. By default, fd uses case-insensitive searches, unless the pattern contains an uppercase character (smart case).
- -i, --ignore-case
- Perform a case-insensitive search. By default, fd uses case-insensitive searches, unless the pattern contains an uppercase character (smart case).
- -F, --fixed-strings
- Treat the pattern as a literal string instead of a regular expression.
- -a, --absolute-path
- Shows the full path starting from the root as opposed to relative paths.
- -L, --follow
- By default, fd does not descend into symlinked directories. Using this flag, symbolic links are also traversed.
- -p, --full-path
- By default, the search pattern is only matched against the filename (or directory name). Using this flag, the pattern is matched against the full path.
- -0, --print0
- Separate search results by the null character (instead of newlines). Useful for piping results to xargs.
- --show-errors
- Enable the display of filesystem errors for situations such as insufficient permissions or dead symlinks.
- -h, --help
- Print help information.
- -V, --version
- Print version information.
- -d, --max-depth d
- Limit directory traversal to at most d levels of depth. By default, there is no limit on the search depth.
- -t, --type filetype
- Filter search by type:
- f, file
- regular files
- d, directories
- directories
- l, symlink
- symbolic links
- x, executable
- executable (files)
- e, empty
- empty files or directories
This option can be used repeatedly to allow for multiple
file types.
- -e, --extension ext
- Filter search results by file extension ext. This option can be used repeatedly to allow for multiple possible file extensions.
- -E, --exclude pattern
- Exclude files/directories that match the given glob pattern. This overrides any other ignore logic. Multiple exclude patterns can be specified.
- --ignore-file path
- Add a custom ignore-file in '.gitignore' format. These files have a low precedence.
- -c, --color when
- Declare when to colorize search results:
- -j, --threads num
- Number of threads to use for searching (default: number of available CPUs).
- -S, --size size
- Limit results based on the size of files using the format <+-><NUM><UNIT>
- '+'
- file size must be greater than or equal to this
- '-'
- file size must be less than or equal to this
- 'NUM'
- The numeric size (e.g. 500)
- 'UNIT'
- The units for NUM. They are not case-sensitive. Allowed unit values:
- 'b'
- bytes
- 'k'
- kilobytes
- 'm'
- megabytes
- 'g'
- gigabytes
- 't'
- terabytes
- 'ki'
- kibibytes
- 'mi'
- mebibytes
- 'gi'
- gibibytes
- 'ti'
- tebibytes
- --changed-within date|duration
- Filter results based on the file modification time. The argument can be
provided as a specific point in time (YYYY-MM-DD HH:MM:SS) or as a
duration (10h, 1d, 35min). --change-newer-than can be used
as an alias.
Examples:
--changed-within 2weeks
--change-newer-than "2018-10-27 10:00:00" - --changed-before date|duration
- Filter results based on the file modification time. The argument can be
provided as a specific point in time (YYYY-MM-DD HH:MM:SS) or as a
duration (10h, 1d, 35min). --change-older-than can be used
as an alias.
Examples:
--changed-before "2018-10-27 10:00:00"
--change-older-than 2weeks - -x, --exec command
- Execute command for each search result. The following placeholders are substituted by a path derived from the current search result:
- {}
- path
- {/}
- basename
- {//}
- parent directory
- {.}
- path without file extension
- {/.}
- basename without file extension
- -X, --exec-batch command
- Execute command with all search results at once. A single occurence of the following placeholders is authorized and substituted by the paths derived from the search results before the command is executed:
- {}
- path
- {/}
- basename
- {//}
- parent directory
- {.}
- path without file extension
- {/.}
- basename without file extension
ENVIRONMENT¶
- LS_COLORS
- Determines how to colorize search results, see dircolors(1).
EXAMPLES¶
- Find files and directories that match the pattern 'needle':
- $ fd needle
- Start a search in a given directory (/var/log):
- $ fd nginx /var/log
- Find all Python files (all files with the extention .py) in the current directory:
- $ fd -e py
- Open all search results with vim:
- $ fd pattern -X vim
SEE ALSO¶
find(1)