用途:按名称或模式查找文件和目录,官方建议优先于普通 find,因为语法更简单、默认更智能,并默认遵守 .gitignore。
主要能力:基础用法为 fd pattern,可指定目录 fd pattern /path/to/dir;大小写不敏感用 fd -i pattern,智能大小写规则为全小写不区分、含大写则区分。可按类型过滤 -t(f 文件、d 目录、l 符号链接、x 可执行),按扩展名 -e py,可叠加多个 -e。可用 -E 排除模式,-H 包含隐藏文件,-I 包含被忽略文件,-d 限制深度,-0 以空字符分隔输出,--absolute-path、--list-details、--color 控制输出格式。支持正则(如 '^test..js$'、--full-path)与 glob(-g ".{js,ts}")。支持时间过滤 --changed-within、--changed-before,大小过滤 --size(如 +10m、-1k)。
执行能力:fd -e jpg -x convert {} {.}.png 对结果执行命令;-x 支持并行;可配合 xargs(fd -e log -0 | xargs -0 rm)。占位符 {} 为路径,{.} 去扩展名,{/} 取文件名,{//} 取目录。
适用场景:查找并删除旧文件 fd --changed-before 30d -t f -x rm {};找大文件 fd --size +100m --list-details;复制 PDF fd -e pdf -x cp {} /target/dir/;统计 Python 行数 fd -e py -x wc -l。可与 ripgrep、fzf、bat 等工具组合。
限制与提示:默认遵守 .gitignore(用 -I 关闭);性能通常优于 find;缺失的安装方式、平台支持与收费信息暂未提供。文档见 GitHub https://github.com/sharkdp/fd 与 man fd。