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

网友投稿 223 2022-09-01

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

目录

​​fd特点​​​​如何在Linux中安装fd​​

​​CentOS安装​​

​​命令选项​​​​如何在Linux中使用fd​​

大多数Linux用户都非常熟悉find命令以及可以使用的许多情况。今天我们将回顾一个名为 ​​fd​​ 的命令的替代方法。​​fd​​​ ,是一款简单,快速且用户友好的工具,与​​查找​​​相比,其工作速度更快。它并不是要完全取代 ​​find​​ ,而是为您提供一种易于使用的替代方案,其执行速度稍快一些。

fd特点

直观的语法:fd PATTERN而不是​​find -iname '*PATTERN*'​​.正则表达式(默认)和基于 glob 的模式。由于并行目录遍历,速度非常快。使用颜色突出显示不同的文件类型(与ls相同)。支持并行命令执行智能大小写:默认情况下搜索不区分大小写。如果模式包含大写字符​​*​​,则切换为区分大小写。默认情况下忽略隐藏的目录和文件。.gitignore默认情况下,忽略来自您的模式。命令名称比find短50% 。

如何在Linux中安装fd

我们将看看如何在不同的Linux发行版中安装 ​​fd​​ 。对于 ​​Ubuntu​​​ 和 ​​Debian​​ 的发行版,您需要从发布页面下载最新的fd版本并使用以下命令进行安装。

$ wget sudo dpkg -i fd-musl_0_amddeb

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

# dnf install fd-find [On Fedora]# pacman -S fd [On Arch Linux]# emerge -av fd [On Gentoo]# zypper in fd [On OpenSuse]# brew install fd [On macOS]

CentOS安装

# wget tar -zxvf fd-v7.4.0-x86_64-unknown-linux-*.tar.gz# cd fd-v7.4.0-x86_64-unknown-linux-*# cp ./fd /usr/local/bin/# cp ./fd.1 /usr/local/share/man/man1/# mandb

命令选项

FLAGS: -H, --hidden 搜索隐藏的文件和目录 -I, --no-ignore 不要忽略 .(git | fd)ignore 文件匹配 --no-ignore-vcs 不要忽略.gitignore文件的匹配 -s, --case-sensitive 区分大小写的搜索(默认值:智能案例) -i, --ignore-case 不区分大小写的搜索(默认值:智能案例) -F, --fixed-strings 将模式视为文字字符串 -a, --absolute-path 显示绝对路径而不是相对路径 -L, --follow 遵循符号链接 -p, --full-path 搜索完整路径(默认值:仅限 file-/dirname) -0, --print0 用null字符分隔结果 -h, --help 打印帮助信息 -V, --version 打印版本信息 OPTIONS: -d, --max-depth 设置最大搜索深度(默认值:无) -t, --type ... 按类型过滤:文件(f),目录(d),符号链接(l), 可执行(x),空(e) -e, --extension ... 按文件扩展名过滤 -x, --exec 为每个搜索结果执行命令 -E, --exclude ... 排除与给定glob模式匹配的条目 --ignore-file ... 以.gitignore格式添加自定义忽略文件 -c, --color 何时使用颜色:never,*auto*, always -j, --threads 设置用于搜索和执行的线程数 -S, --size ... 根据文件大小限制结果。ARGS: the search pattern, a regular expression (optional) ... the root directory for the filesystem search (optional)

如何在Linux中使用fd

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

# fd -hOR# fd --help

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

# fd

在下一个 ​​fd​​​ 示例中,我将使用位于​​/var/fd | head

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

# fd -e jpg

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

# fd -e php index

上面的命令将查找扩展名为 ​​php​​​ 的文件,并在其中包含字符串 ​​index​​ :如果要排除某些结果,可以使用​​- E​​标志,如下所示:

# fd -e php index -E rumenz

此命令将查找包含php扩展名的所有文件,其中包含字符串 ​​index​​​ ,并将排除 ​​rumenz​​ 目录中的结果。如果要指定搜索目录,只需将其作为参数提供:

# fd

就像 ​​find​​​ 一样,您可以使用 ​​-x​​​ 或 ​​- exec​​ 参数来执行搜索结果的并行命令执行。这是一个示例,我们将使用 ​​chmod​​ 来更改图像文件的权限

# fd -e jpg -x chmod 644 {}

以上内容将找到扩展名为 ​​jpg​​​ 的所有文件,并将运行 ​​chmod 644 ​​递归地找到所有 zip 档案并解压它们

# fd -e zip -x unzip

所有​​*.jpg​​​文件转换为​​*.png​​文件

# fd -e jpg -x convert {} {.}.png

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《基本类型和引用类型》
下一篇:MySQL 5.5系列安装步骤教程(图解版)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~