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

简介: 目录fd特点如何在Linux中安装fdCentOS安装命令选项如何在Linux中使用fd

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


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


fd特点


直观的语法:fd PATTERN而不是find -iname '*PATTERN*'.

正则表达式(默认)和基于 glob 的模式。

由于并行目录遍历,速度非常快。

使用颜色突出显示不同的文件类型(与ls相同)。

支持并行命令执行

智能大小写:默认情况下搜索不区分大小写。如果模式包含大写字符*,则切换为区分大小写。

默认情况下忽略隐藏的目录和文件。

.gitignore默认情况下,忽略来自您的模式。

命令名称比find短50% 。


如何在Linux中安装fd


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

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



$ wget https://github.com/sharkdp/fd/releases/download/v0/fd-musl_0_amddeb
$ 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 https://github.com/sharkdp/fd/releases/download/v7.4.0/fd-v7.4.0-x86_64-unknown-linux-musl.tar.gz
# 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 -h
OR
# fd --help


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


# fd


在下一个 fd 示例中,我将使用位于/var/www/html/中的默认WordPress安装来搜索不同的文件和文件夹。

在下面的示例中,我仅使用前10个结果来缩短命令输出。


# 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 <pattery> <directory>


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

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


# fd -e jpg -x chmod 644 {}



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

递归地找到所有 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 不占用太多空间,是您的武器库中的一个很好的工具。


目录
相关文章
|
运维 Ubuntu Java
如何在Linux中不解压就能查看压缩包中的内容,这13个命令非常强!
不解压查看压缩包内容对于提升 Linux 使用效率帮助非常大,不管是开发人员还是运维人员,这种需求场景非常多。
6203 0
如何在Linux中不解压就能查看压缩包中的内容,这13个命令非常强!
|
Ubuntu Linux 时序数据库
sudo apt-get update提示E: 仓库 “http://mirrors.aliyun.com/ubuntu eoan Release” 没有 Release 文件。亲试解决办法
将自己亲身解决这个办法进行分享,希望朋友们可以少走弯路。
11739 1
|
7月前
|
人工智能 运维 API
高级RAG优化手册:3招解决检索不准和查询模糊
本文深入解析RAG(检索增强生成)技术的核心优化方法,涵盖背景、架构与实践。RAG通过整合外部知识库,弥补大语言模型在实时性、准确性和专业性上的不足,广泛应用于企业场景。文章系统讲解RAG如何解决知识静态、生成幻觉与专业深度不足等问题,并剖析其离线索引与在线生成的闭环流程。此外,还介绍了高级优化策略,如查询重写、混合检索与结果重排序,助力突破RAG应用瓶颈。
1499 1
在Linux中,如何查看当前日期和时间?
在Linux中,如何查看当前日期和时间?
|
11月前
|
监控 数据可视化 API
HarmonyOS Next开发利器:DevEco Studio高效编码技巧 🚀
DevEco Studio是HarmonyOS Next开发的高效工具,助您提升编码效率与代码质量。核心功能包括:**代码阅读优化**(可视化标记、智能跳转、结构预览)、**规范维护**(自动化格式调整、注释管理)、**效率增强**(精准搜索、即时文档查阅)、**对象开发支持**(类结构分析、方法覆写)及**质量保障**(实时语法检测、自定义Linter规则)。掌握这些技巧,可显著提高HarmonyOS应用开发效率与代码可维护性!🚀
419 14
|
10月前
TortoiseSVN使用-权限配置
TortoiseSVN使用-权限配置
350 2
|
虚拟化 Docker Windows
Docker 和 vmware 共存工作
Docker 和 vmware 共存工作
687 9
|
Ubuntu Linux 网络安全
在Linux中,能否给⼀个网卡配置多个IP? 如果能,怎么配置?
在Linux中,能否给⼀个网卡配置多个IP? 如果能,怎么配置?
|
Kubernetes 持续交付 数据库
阿里云ACK+GitLab企业级部署实战教程
GitLab 是一个功能强大的基于 Web 的 DevOps 生命周期平台,整合了源代码管理、持续集成/持续部署(CI/CD)、项目管理等多种工具。其一体化设计使得开发团队能够在同一平台上进行代码协作、自动化构建与部署及全面的项目监控,极大提升了开发效率和项目透明度。 GitLab 的优势在于其作为一体化平台减少了工具切换,高度可定制以满足不同项目需求,并拥有活跃的开源社区和企业级功能,如高级权限管理和专业的技术支持。借助这些优势,GitLab 成为许多开发团队首选的 DevOps 工具,实现从代码编写到生产部署的全流程自动化和优化。
|
监控 JavaScript 安全
vue3添加pinia
本文介绍了Pinia作为Vue 3的状态管理库的特点,包括其基于Vue 3的Composition API、响应式状态管理、零依赖设计、插件系统、Devtools集成、Tree-shakable特性以及对TypeScript的支持,并详细说明了如何在Vue 3项目中安装和初始化Pinia。
371 1
vue3添加pinia