红联Linux门户
Linux帮助

fd - find命令的简单快速替代方案

发布时间:2019-05-23 00:00:00来源:未知作者:admin

大多数Linux用户都非常熟悉find命令以及可以使用的许多情况。今天我们将回顾一个替代find命令,称为fd。

fd,是一个简单,快速且用户友好的工具,与find相比,它的执行速度更快。它并不是要完全取代find,而是为您提供一种易于使用的替代方案,其执行速度稍快一些。

fd的一些显著特征:

  • 易于使用的语法  – fd *pattern* 而不是find -iname *pattern*。
  • 多彩输出类似于ls命令之一。
  • 性能快。开发人员的基准测试可在此处获得。
  • 默认情况下,智能搜索不区分大小写,如果图标容器为大写符号,则切换为区分大小写。
  • 默认情况下不查看隐藏文件和目录。
  • 默认情况下不会查看.gitignore。
  • Unicode感知。

如何在Linux中安装fd

我们将看看如何在不同的Linux发行版中安装fd。

对于基于Ubuntu和Debian的发行版,您需要从发布页面下载最新的fd版本并使用以下命令进行安装。

linuxidc@linuxidc:~/www.linuxidc.com$ wget https://github.com/sharkdp/fd/releases/download/v7.3.0/fd-musl_7.3.0_amd64.deb

linuxidc@linuxidc:~/www.linuxidc.com$ sudo dpkg -i fd-musl_7.3.0_amd64.deb

在其他Linux发行版上,您可以使用包管理器从默认存储库安装fd,如下所示。

# dnf install fd-find  [在 Fedora]
# pacman -S fd        [在 Arch Linux]
# emerge -av fd        [在 Gentoo]
# zypper in fd        [在 OpenSUSE]

如何在Linux中使用fd

与find命令类似,fd有很多用例,但让我们从检查可用选项开始:

linuxidc@linuxidc:~/www.linuxidc.com$ fd -h

或者

linuxidc@linuxidc:~/www.linuxidc.com$ fd --help

fd命令用法

我们来看看几个例子。 您可以在没有任何参数的情况下运行fd,输出与ls -R命令非常相似。

linuxidc@linuxidc:~/www.linuxidc.com$ fd

在下一个fd示例中,我将使用位于www.linuxidc.com/wordpress来搜索不同的文件和文件夹。

在下面的示例中,对于较短的命令输出,我只使用了前10个结果。

linuxidc@linuxidc:~/www.linuxidc.com/wordpress$ fd | head

 

fd命令示例

假设我们想找到所有的jpg文件。 我们可以使用“-e”标志来过滤文件扩展名:

linuxidc@linuxidc:~/www.linuxidc.com/wordpress$ fd -e jpg

fd  - 查找JPG文件

“-e”标志可以与这样的模式结合使用:

linuxidc@linuxidc:~/www.linuxidc.com/wordpress$ fd -e php index

上面的命令将查找扩展名为php的文件,并在其中包含字符串“index”:

 

fd  - 在文件中查找字符串

如果要排除某些结果,可以使用“-E”标志,如下所示:

linuxidc@linuxidc:~/www.linuxidc.com/wordpress$ fd -e php index -E wp-content

此命令将查找具有php扩展名的所有文件,其中包含字符串“index”,并将排除“wp-content”目录中的结果。

fd  - 在文件中搜索字符串时排除文件

如果要指定搜索目录,只需将其作为参数提供:

fd <pattery> <directory>

linuxidc@linuxidc:~/www.linuxidc.com/wordpress$ fd jpg ./wp-content/

fd  - 在目录中查找文件

就像查找一样,您可以使用-x或--exec参数来执行搜索结果的并行命令执行。

这是一个示例,我们将使用chmod来更改图像文件的权限

fd -e jpg -x chmod 644 {}

以上将找到所有扩展名为jpg的文件并将运行 chmod 644 <path-to-file>

以下是括号的一些有用解释和用法:

  • {} – 一个占位符,它将随着搜索结果的路径改变(wp-content/uploads/01.jpg)。
  • {.} – 类似于{},但不使用文件扩展名(wp-content/uploads/01)。
  • {/}:将被搜索结果的基本名称 (01.jpg)所取代的占位符。
  • {//}:发现路径的父目录(wp-content/uploading)。
  • {/.}:只有基本名称,没有扩展名(01)。

总结

这是对fd命令的简要回顾,一些用户可能会发现fd命令更容易使用,也更快。正如本文前面提到的,fd并不是完全替代find,而是提供简单的用法、更容易的搜索和更好的性能。在您的武器库中,fd不需要太多的空间,是一个很好的工具。

更多Linux命令相关信息见Linux命令大全 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=16