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