fd:Linux find 命令的替代方案

linuxopen sourceoperating system更新于 2026/1/25 8:22:17

fd 命令是 Linux 中 find 命令的常用替代方案。它是 find 命令的更快、更用户友好的版本,并且使用 Rust 编写以提高性能。 fd 的一些主要功能包括使用正则表达式搜索、更自然的搜索参数指定语法以及使用特定文件扩展名或名称搜索。

安装

可以使用发行版的包管理器在 Linux 和 macOS 上安装 fd 命令。

基于 Debian 的发行版 -

sudo apt-get install fd-find

Fedora 和 Centos -

sudo yum install fd-find

Arch Linux 和 Manjaro -

sudo pacman -S fd

MacOS -

brew install fd

或者,您也可以从源代码安装 fd,方法是从 GitHub 仓库下载最新版本,然后手动构建和安装。

cargo install --force fd-find

安装完成后,您可以在终端中使用 fd 命令,就像使用 find 命令一样。

基本用法

fd 命令的基本用法与 find 命令类似。以下是一些示例 -

查找当前目录中的所有文件 -

fd .

查找所有具有特定名称的文件 -

fd testfile

查找所有具有特定扩展名的文件 -

fd -e txt

查找所有包含特定字符串的文件 -

fd -s "test file"

查找过去 24 小时内修改的所有文件 -

fd -t f -mtime -1

查找所有目录文件 -

fd -t d

查找所有符号链接文件 -

fd -t l

fd 命令还有其他一些选项和参数,可用于自定义搜索。您可以运行 fd --help 查看完整的选项列表。

指定搜索条件

fd 命令允许您指定各种搜索条件来缩小搜索结果范围。以下是一些示例 -

搜索与特定模式匹配的文件 -

fd -e txt -p "*.txt"

这将查找所有与模式"*.txt"匹配的文本文件

搜索大于特定大小的文件 -

fd -L 10M

这将查找所有大于 10MB 的文件

搜索小于特定大小的文件 -

fd -S 1K

这将查找所有小于 1KB 的文件

搜索在特定时间范围内修改的文件 -

fd -t f -mtime +30 -mtime -60

这将查找所有在 30 到 60 天前修改过的文件

搜索具有特定所有者或组的文件−

fd -u root

这将查找用户"root"拥有的所有文件

搜索具有特定权限的文件 −

fd -x +rwx

这将查找所有用户都具有读、写和执行权限的文件。

使用正则表达式搜索 −

fd -e txt -r "^[a-z]"

这将查找所有名称以小写字母开头的文本文件。

使用特定路径搜索 −

fd -p "/path/to/directory"

这将查找目录中的所有文件'/path/to/directory' 及其子目录。

遍历符号链接

默认情况下,fd 命令在搜索文件时不会跟踪符号链接。这意味着,如果符号链接指向一个目录,fd 将不会搜索该目录的内容。但是,您可以使用 -L 选项告诉 fd 在搜索文件时遵循符号链接。

fd -L -t f

这将查找所有文件,包括符号链接所链接目录中的文件。

您还可以使用 -H 选项告诉 fd 仅在符号链接作为命令行参数时才遍历符号链接。

fd -H -t f

当符号链接作为命令行参数传递时,这将查找所有文件,包括符号链接所链接目录中的文件。

您还可以使用 --no-ignore 选项查找默认忽略的目录中的文件,例如 .git 或 node_modules 文件夹。

fd --no-ignore -t f

您还可以使用 --hidden 选项查找目录中的隐藏文件。

fd --hidden -t f

您也可以组合使用多个选项来获取特定结果。

控制目录遍历深度

fd 命令允许您在搜索文件时控制目录遍历的深度。默认情况下,fd 会递归搜索整个目录树,但您可以使用 -d 选项指定搜索的最大深度。

fd -d 2 -t f

这将仅查找当前目录及其直接子目录中的所有文件。

您也可以使用 -D 选项指定搜索的最小深度。

fd -D 2 -t f

这将仅查找两层或两层以上目录中的所有文件。

您也可以将 -d 和 -D 选项结合使用以获得更精确的结果。

fd -d 2 -D 3 -t f

这将仅查找两到三层目录中的所有文件。

您还可以使用使用 -maxdepth 选项代替 -d 选项,使用 -mindepth 选项代替 -D 选项,可获得相同的结果。

fd -maxdepth 2 -mindepth 3 -t f

反转搜索结果

fd 命令允许您反转搜索结果,这意味着您可以找到不符合指定条件的文件。您可以使用 -I 选项反转搜索结果。

例如 −

fd -I -e txt

此命令将返回所有非文本文件。

另一个示例 −

fd -I -L 10M

此命令将返回所有小于 10MB 的文件。

您也可以使用 -not 选项反转搜索结果。

fd -not -e txt

此命令将返回所有非文本文件。

对搜索结果执行命令

fd 命令允许您对搜索结果执行命令。您可以使用 -e 选项指定要对搜索结果执行的命令。

例如 −

fd -e cat

此命令将显示所有符合搜索条件的文件的内容。

另一个示例 −

fd -e rm

此命令将删除所有符合搜索条件的文件。

您还可以在命令中使用变量来表示搜索结果。变量 {} 将被搜索结果替换。

fd -e "cat {}"

此命令将显示所有符合搜索条件的文件的内容。

另一个示例 −

fd -e "mv {} /path/to/destination"

此命令将所有符合搜索条件的文件移动到目录 /path/to/destination

结论

fd 命令是 Linux 中 find 命令的强大替代方案,它提供了一种更快速、更用户友好的文件搜索方式。 fd 允许您指定各种搜索条件,例如文件名、扩展名、大小和修改时间,还允许您使用正则表达式搜索、遍历符号链接、控制目录遍历深度、反转搜索结果并对搜索结果执行命令。


相关文章


有用资源