Linux中一种友好的find替代工具(fd命令)

 更新时间:2019年11月24日 11:25:13   作者:Patrick H. Mullins  
这篇文章主要介绍了Linux中一种友好的find替代工具(fd命令),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

fd 命令提供了一种简单直白的搜索 Linux 文件系统的方式。

fd 是一个超快的,基于 Rust 的 Unix/Linux find 命令的替代品。它不提供所有 find 的强大功能。但是,它确实提供了足够的功能来覆盖你可能遇到的 80% 的情况。诸如良好的规划和方便的语法、彩色输出、智能大小写、正则表达式以及并行命令执行等特性使 fd 成为一个非常有能力的后继者。

安装

进入 fd GitHub 页面,查看安装部分。它涵盖了如何在macOSDebian/Ubuntu Red Hat Arch Linux 上安装程序。安装完成后,你可以通过运行帮助来获得所有可用命令行选项的完整概述,通过 fd -h 获取简明帮助,或者通过 fd --help 获取更详细的帮助。

简单搜索

fd 旨在帮助你轻松找到文件系统中的文件和文件夹。你可以用 fd 带上一个参数执行最简单的搜索,该参数就是你要搜索的任何东西。例如,假设你想要找一个 Markdown 文档,其中包含单词 services 作为文件名的一部分:

$ fd services
downloads/services.md

如果仅带一个参数调用,那么 fd 递归地搜索当前目录以查找与莫的参数匹配的任何文件和/或目录。使用内置的 find 命令的等效搜索如下所示:

$ find . -name 'services'
downloads/services.md

如你所见,fd 要简单得多,并需要更少的输入。在我心中用更少的输入做更多的事情总是对的。

文件和文件夹

您可以使用 -t 参数将搜索范围限制为文件或目录,后面跟着代表你要搜索的内容的字母。例如,要查找当前目录中文件名中包含 services 的所有文件,可以使用:

$ fd -tf services
downloads/services.md

以及,找到当前目录中文件名中包含 services 的所有目录:

$ fd -td services
applications/services
library/services

如何在当前文件夹中列出所有带 .md 扩展名的文档?

$ fd .md
administration/administration.md
development/elixir/elixir_install.md
readme.md
sidebar.md
linux.md

从输出中可以看到,fd 不仅可以找到并列出当前文件夹中的文件,还可以在子文件夹中找到文件。很简单。

你甚至可以使用 -H 参数来搜索隐藏文件:

fd -H sessions .
.bash_sessions

指定目录

如果你想搜索一个特定的目录,这个目录的名字可以作为第二个参数传给 fd:

$ fd passwd /etc
/etc/default/passwd
/etc/pam.d/passwd
/etc/passwd

在这个例子中,我们告诉 fd 我们要在 etc 目录中搜索 passwd 这个单词的所有实例。

全局搜索

如果你知道文件名的一部分,但不知道文件夹怎么办?假设你下载了一本关于 Linux 网络管理的书,但你不知道它的保存位置。没有问题:

fd Administration /
/Users/pmullins/Documents/Books/Linux/Mastering Linux Network Administration.epub

总结

fd 是 find 命令的极好的替代品,我相信你会和我一样发现它很有用。要了解该命令的更多信息,只需浏览手册页。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • CentOS 6.5编译安装Nginx 1.10.2+MySQL 5.5.52+PHP5.5.38

    CentOS 6.5编译安装Nginx 1.10.2+MySQL 5.5.52+PHP5.5.38

    这篇文章主要介绍了CentOS 6.5编译安装Nginx 1.10.2+MySQL 5.5.52+PHP5.5.38,需要的朋友可以参考下
    2017-02-02
  • CentOS7更改默认SSH端口与配置指南

    CentOS7更改默认SSH端口与配置指南

    SSH是 Linux 服务器远程管理的核心工具,其默认监听端口为 22,由于端口 22 众所周知,这也使得服务器容易受到自动化扫描和暴力 破解攻击,本文将系统性地介绍如何在 CentOS 7 系统中安全地更改 SSH 端口,解决 SELinux 和防火墙相关配置,需要的朋友可以参考下
    2025-04-04
  • Linux一键安装xdd plus机器人

    Linux一键安装xdd plus机器人

    大家好,本篇文章主要讲的是Linux一键安装xdd plus机器人,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • apache日志配置一例

    apache日志配置一例

    apache日志配置一例,包括指定存储目录与格式、自动删除过期的日志文件,有需要的朋友可以参考下
    2013-02-02
  • 详解安装Ubuntu Linux系统时硬盘分区最合理的方法

    详解安装Ubuntu Linux系统时硬盘分区最合理的方法

    这篇文章主要介绍了详解安装Ubuntu Linux系统时硬盘分区最合理的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • centeros7 安装配置环境jdk1.8的教程

    centeros7 安装配置环境jdk1.8的教程

    这篇文章主要介绍了centeros7 安装配置环境jdk1.8的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • linux zip/unzip命令详解

    linux zip/unzip命令详解

    本篇文章主要介绍了linux zip/unzip命令详解,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • inotify-tools+rsync实时同步文件的配置方法

    inotify-tools+rsync实时同步文件的配置方法

    我使用的是google的inotify-tools,比较简单.国内有功能很强大的类似的程序,但是好复杂.
    2013-02-02
  • Linux如何实现给/根目录扩容

    Linux如何实现给/根目录扩容

    这篇文章主要介绍了Linux如何实现给/根目录扩容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Linux命令学习总结:详解reboot命令

    Linux命令学习总结:详解reboot命令

    这篇文章主要介绍了Linux命令学习总结:详解reboot命令,这个指令使用起来非常简单,有兴趣的可以了解一下。
    2016-11-11

最新评论