Linux 中一种友好的 find 替代工具
fd 命令提供了一种简单直白的搜索 Linux 文件系统的方式。
fd 是一个超快的,基于 Rust 的 Unix/Linux find
命令的替代品。它不提供所有 find
的强大功能。但是,它确实提供了足够的功能来覆盖你可能遇到的 80% 的情况。诸如良好的规划和方便的语法、彩色输出、智能大小写、正则表达式以及并行命令执行等特性使 fd
成为一个非常有能力的后继者。
安装
进入 fd GitHub 页面,查看安装部分。它涵盖了如何在macOS、 Debian/Ubuntu Red Hat 和 Arch Linux 上安装程序。安装完成后,你可以通过运行帮助来获得所有可用命令行选项的完整概述,通过 fd -h
获取简明帮助,或者通过 fd --help
获取更详细的帮助。
简单搜索
fd
旨在帮助你轻松找到文件系统中的文件和文件夹。你可以用 fd
带上一个参数执行最简单的搜索,该参数就是你要搜索的任何东西。例如,假设你想要找一个 Markdown 文档,其中包含单词 services
作为文件名的一部分:
$ fd servicesdownloads/services.md
如果仅带一个参数调用,那么 fd
递归地搜索当前目录以查找与莫的参数匹配的任何文件和/或目录。使用内置的 find
命令的等效搜索如下所示:
$ find . -name 'services'downloads/services.md
如你所见,fd
要简单得多,并需要更少的输入。在我心中用更少的输入做更多的事情总是对的。
文件和文件夹
您可以使用 -t
参数将搜索范围限制为文件或目录,后面跟着代表你要搜索的内容的字母。例如,要查找当前目录中文件名中包含 services
的所有文件,可以使用:
$ fd -tf servicesdownloads/services.md
以及,找到当前目录中文件名中包含 services
的所有目录:
$ fd -td servicesapplications/serviceslibrary/services
如何在当前文件夹中列出所有带 .md
扩展名的文档?
$ fd .mdadministration/administration.mddevelopment/elixir/elixir_install.mdreadme.mdsidebar.mdlinux.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
命令的极好的替代品,我相信你会和我一样发现它很有用。要了解该命令的更多信息,只需浏览手册页。
via: https://opensource.com/article/18/6/friendly-alternative-find
作者:Patrick H. Mullins 选题:lujun9972 译者:geekpi 校对:wxy
建议继续学习:
- Mysql监控指南 (阅读:19794)
- 分享一个JQUERY颜色选择插件 (阅读:12650)
- Linux命令行里的“瑞士军刀” (阅读:10145)
- 利用find和sed批量替换文件内容 (阅读:9928)
- find命令的一点注意事项 (阅读:8164)
- linux下搜索find命令详解 (阅读:7885)
- 服务器性能测试工具推荐 (阅读:6475)
- Linux find命令的速度 (阅读:4742)
- 性能测试工具sysbench简介 (阅读:4755)
- 10个最有帮助的在线协同工具 (阅读:4787)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:linux@linux.cn (linux) 来源: Linux中国开源社区
- 标签: find 工具
- 发布时间:2018-06-28 12:04:43
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [52] android 开发入门
- [52] 如何拿下简短的域名
- [51] 图书馆的世界纪录
- [50] Oracle MTS模式下 进程地址与会话信
- [49] Go Reflect 性能
- [46] 【社会化设计】自我(self)部分――欢迎区
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑