大多数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示例中,我将使用位于来搜索不同的文件和文件夹。
在下面的示例中,对于较短的命令输出,我只使用了前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)。
总结