网站搜索

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 不占用太多空间,是您武器库中的一个不错的工具。