fd - Find 命令的简单快速替代方案
大多数 Linux 用户都非常熟悉 find 命令及其使用的多种情况。今天我们将回顾 find 命令的替代方案,称为 fd。
fd 是一个简单、快速且用户友好的工具,与 find 相比,其执行速度更快。它并不是要完全取代查找,而是为您提供一个易于使用且执行速度稍快的替代方案。
特点
fd 的一些显着特性:
- 易于使用的语法 - fd *pattern* 而不是 find -iname *pattern*。
- 彩色输出类似于 ls 命令的输出。
- 性能快。开发人员的基准可在此处获取。
- 智能搜索默认不区分大小写,如果模式包含大写符号,则切换为区分大小写。
- 默认情况下不查找隐藏文件和目录。
- 默认情况下不查看 .gitignore。
- 统一码意识。
如何在 Linux 中安装 fd
我们将了解如何使用如图所示的默认包管理器在不同的 Linux 发行版中安装 fd。
sudo apt install fd-find [On Debian, Ubuntu and Mint]
sudo yum install fd-find [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/fd [On Gentoo Linux]
sudo pacman -S fd [On Arch Linux]
sudo zypper install fd [On OpenSUSE]
sudo apk add fd [On Alpine Linux]
如何在 Linux 中使用 fd
与 find 命令类似,fd 有很多用例,但让我们首先检查可用选项:
fd -h
OR
fd --help
让我们看几个例子。您可以不带任何参数运行fd,输出与ls -R 命令非常相似。
fd
在接下来的 fd 示例中,我将使用位于 /var/www/html/
中的默认 WordPress 安装来搜索不同的文件和文件夹。
在下面的示例中,我使用 head 命令的管道重定向仅打印了较短输出的前 10 个结果。
fd | head
查找 Linux 中的所有 JPG 文件
假设我们想要查找所有 jpg 文件。我们可以使用 “-e ”
标志按文件扩展名进行过滤:
fd -e jpg
如果您想指定搜索目录,只需将其作为参数给出:
fd <pattery> <directory>
在 Linux 中的所有 PHP 文件中搜索字符串
“-e ”
标志可以与模式结合使用,如下所示:
fd -e php index
上面的命令将查找扩展名为 .php
且包含字符串“index”的文件:
如果您想排除某些结果,可以使用 “-E ”
标志,如下所示:
fd -e php index -E wp-content
此命令将查找所有具有 php 扩展名、包含字符串“index”的文件,并将排除“wp-content”目录中的结果。
查找所有JPG文件并修改权限
正如 find 一样,您可以使用 -x
或 --exec
参数对搜索结果执行并行命令执行。
这是一个示例,我们将使用 chmod 更改图像文件的权限
fd -e jpg -x chmod 644 {}
上面的代码将查找所有扩展名为 jpg 的文件,并运行 chmod 644
。
以下是括号的一些有用的解释和用法:
{}
– 将随搜索结果路径 (wp-content/uploads/01.jpg) 更改的占位符。{.}
– 与{}
类似,但不使用文件扩展名 (wp-content/uploads/01)。{/}
:占位符,将替换为搜索结果的基本名称 (01.jpg)。{//}
:已发现路径的父目录 (wp-content/uploads)。{/.}
:只有基本名称,没有扩展名 (01)。
结论
这是对fd 命令的简要回顾,一些用户可能会发现该命令更易于使用且速度更快。正如本文前面提到的,fd 并不是要完全取代 find,而是提供简单的用法、更轻松的搜索和更好的性能。 Fd 不占用太多空间,是您武器库中的一个不错的工具。