Linux 中 find 工具的友好替代品

`fd` 命令提供了一种简单直观的方式来搜索您的 Linux 文件系统。
296 位读者喜欢这篇文章。
How to find files in Linux

Lewis Cowles, CC BY-SA 4.0

fd 是一个超快的、基于 Rust 的 Unix/Linux find 命令的替代品。它没有镜像 find 的所有强大功能;但是,它提供了足够的功能来覆盖您可能遇到的 80% 的用例。诸如经过深思熟虑且方便的语法、彩色输出、智能大小写、正则表达式和并行命令执行等功能使 fd 成为一个非常有能力的继任者。

安装

前往 fd GitHub 页面,查看关于安装的部分。它涵盖了如何在 macOS, Debian/Ubuntu, Red Hat, 和 Arch Linux 上安装该应用程序。安装完成后,您可以通过运行 fd -h 获取简洁的帮助,或运行 fd --help 获取更详细的帮助,从而全面了解所有可用的命令行选项。

简单搜索

`fd` 旨在帮助您轻松查找操作系统文件系统中的文件和文件夹。您可以执行的最简单的搜索是使用单个参数运行 fd,该参数是您要搜索的任何内容。例如,假设您想查找文件名中包含单词 services 的 Markdown 文档

$ 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 命令的绝佳替代品,我相信您会发现它和我一样有用。要了解有关该命令的更多信息,只需浏览相当全面的手册页。

标签
User profile image.
大家好!我是 Patrick,我是一位退休的 IT 工程师,前 IBM 员工,作家,开源倡导者,游戏玩家和自称的超级极客。我也对太空技术和探索,UNIX,命令行,复古游戏机以及复古计算机(如 Atari 2600,Commodore 64 和 Amiga)非常感兴趣。

9 条评论

很好。这正是我想要的。谢谢 :)

不错的发现.. 超快,当然在 Arch 中

"find . -name 'services'" 将返回名为 "services" 的文件,但不返回 "services.md"。要获得后者,您需要 "find . -name 'services*'"。

看起来是个很棒的工具。我会试试看。谢谢分享!

xargs 集成怎么样?有什么像 -print0 这样的吗?

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.