fd:Linux find 命令的替代方案
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 允许您指定各种搜索条件,例如文件名、扩展名、大小和修改时间,还允许您使用正则表达式搜索、遍历符号链接、控制目录遍历深度、反转搜索结果并对搜索结果执行命令。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

