网易首页 > 网易号 > 正文 申请入驻

Linux 古老的find命令的高级替代

0
分享至

  在Linux上,fd是查找命令的一种更简单的替代方法。它有简化的语法,使用合理的默认值,现在让我们来看看吧。

  

  fd 与 find 有什么区别?

  fd命令并不意味着要取代传统的find命令,后者在Linux上一直存在。相反,fd试图以更直接的方式满足find的大多数常用用法,而且它通常比find快八到九倍。您可以在项目的GitHub存储库页面上看到它的一些基准测试。

  fd具有彩色输出,类似于某些ls模式。它是递归的,但默认情况下不搜索隐藏的目录。它了解Git,还将自动忽略“.gitignore”文件中的任何模式。

  fd默认不区分大小写。但是,如果您的搜索模式包含一个大写字母,fd将以区分大小写的模式运行。当然,您可以重写默认值,但是在许多情况下,它们对您是有利的。

  安装fd

  从Ubuntu 19.04(Disco Dingo)开始,您可以通过使用apt-get调用官方维护的软件包直接安装fd。如果您运行的是旧版Ubuntu,请查看GitHub页面上的安装说明。

  输入以下命令:

  

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install fd-find

  

  在Ubuntu中,命令是fdfind,以避免与另一个现有的实用程序发生名称冲突。如果希望它是fd,可以设置一个别名:

  

linuxmi@linuxmi:~/www.linuxmi.com$ alias fd=fdfind

  

  要使别名保持不变,以便在重新启动后仍然可用,请将其放入“ .bashrc”或“ .bash_aliases”文件中。

  要在Fedora上安装fd,请键入以下命令:

  

sudo dfn install fd-find

  在Manjaro上,键入以下内容:

  

sudo pacman -Syu fd

  fd与fdfind

  为避免混淆,我们在Ubuntu测试PC上保留了命令的默认名称fdfind。fd和fdfind是完全相同的命令,如下面的示例所示(如果您要求fdfind显示其版本,则称其为“ fd”):

  

linuxmi@linuxmi:~/www.linuxmi.com$ fdfind --version

  

  在示例中,我们将使用Ubuntu“ fdfind”。在其他Linux发行版中,可以键入“ fd”而不是“ fdfind”来保存一些击键。

  使用fd进行简单搜索

  如果使用不带命令行选项的fd,则其行为类似于ls,不同之处在于它默认情况下在子目录中列出文件。

  输入以下内容:

  

linuxmi@linuxmi:~/www.linuxmi.com$ fdfind

  

  对于不同的文件类型和目录,输出以不同的颜色显示。

  要查看特定类型的文件,请使用-e(扩展名)选项。请注意,您不必在扩展名前加句点(.),也不区分大小写。

  例如,您可以键入以下内容:

  

linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -e png

  

  现在,列出的唯一文件是PNG图像文件。

  要查找单个文件,请在命令行上键入其名称,如下所示:

  linuxmi@linuxmi:~/www.linuxmi.com$ fdfind linuxmi.png

  

  找到该文件,并且该文件恰好在子目录中。我们不必告诉fd进行递归搜索。

  要在特定目录中开始搜索,请在命令行上包含文件路径。以下命令将在“/etc”目录中开始搜索,并查找文件名中包含“passwd”的文件:

  

linuxmi@linuxmi:~/www.linuxmi.com$ fdfind passwd /etc

  

  在这里,我们搜索所有C源代码文件的名称中包含“linuxmi”的文件:

  

linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -e c linuxmi

  找到了3个匹配的文件。

  

  文件类型和区分大小写

  您可以要求fd查找目录,文件(包括可执行文件和空文件)以及符号链接。您可以使用-t(type类型)选项,然后使用以下字母之一进行操作:

  f: 文件

  d: 目录

  l: 符号链接

  x: 可执行文件

  e: 空文件

  下面寻找一个名为images的目录:

  

linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -td images

  

  找到匹配项,在当前目录下的一个子目录中。

  让我们看看区分大小写如何与搜索模式一起工作。我们键入以下内容首先搜索文件名中包含“linux”的文件,然后搜索文件名中包含“Linux”的文件:

  

linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -tf linux

  

  

linuxmi@linuxmi:~/www.linuxmi.com$ fdfind -tf Linux

  

  在第一个命令中,我们使用了小写搜索模式,这导致fd以不区分大小写的方式进行操作。这意味着“linux”和“Linux”都是有效匹配。

  第二个命令包含一个大写字符,这导致fd以区分大小写的方式进行操作。这意味着只有“Linux”是一个有效匹配。

  命令执行

  fd命令允许您启动另一个命令并在找到的每个文件上执行它。

  假设我们知道源代码目录树中某处有一个Zip文件。我们可以使用以下命令来查找它,该命令搜索具有ZIP扩展名的文件:

  

linuxmi@linuxmi:~/linuxmi.com$ fdfind -e zip

  

  使用-x(exec)选项,您可以将找到的每个文件传递给另一个命令,以供其处理。例如,我们可以键入以下内容来调用unzip实用程序以解压缩我们的ZIP文件(“ {}”是代表找到的文件的占位符):

  

linuxmi@linuxmi:~/linuxmi.com$ fdfind -e zip -x unzip {}

  这将解压缩当前工作目录中的文件。如果我们想把它解压缩到包含ZIP文件的目录中,我们可以使用以下占位符之一:

  {} – 一个占位符,它将随着搜索结果的路径改变(wp-content/uploads/01.jpg)。

  {.} – 类似于{},但不使用文件扩展名(wp-content/uploads/01)。

  {/}:将被搜索结果的基本名称 (01.jpg)所取代的占位符。

  {//}:发现路径的父目录(wp-content/uploading)。

  {/.}:只有基本名称,没有扩展名(01)。

  为了找到我们的ZIP文件并将其解压缩到包含它的目录中,我们可以使用unzip -d(目录)选项,并传入父目录占位符({//}):

  

linuxmi@linuxmi:~/linuxmi.com$ fdfind -e zip -x unzip {} -d {//}

  

  然后将ZIP文件定位并解压缩到其父目录中。

  

  总结

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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐

我国终于下“狠心”惩罚!部分人将失去中国国籍,网友:自食其果

一个人的惬意旅行
2020-11-23 13:29:05

当着全世界的面!马克龙罕见怒斥德国防长,还放言中美会为之一震

东方之星V
2020-11-23 17:37:06

一到凌晨3、4点自然醒,再也睡不着是怎么回事?早知早受益!

私厨名厨
2020-11-20 17:55:24

「警示教育」失足女像明星、嫖客是精英,涉案上万人

我们的百变生活
2020-11-24 02:44:51

美国人:离不开中国货,欧洲人:依赖,印度越南无法成为世界工厂

独角兽财经
2020-11-23 14:35:49

62岁“上海仔”郭永鸿正式被捕!近照憔悴秃顶,曾与崩牙驹齐名

生活全时空
2020-11-23 10:06:26

女性洗澡时也会站着排尿?除了爽,还有2点原因,别不好意思

39健康网
2020-11-23 19:38:11

U盘之父朗科落寞:曾占据U盘市场,今收租为生,成腾讯房东

图灵解密
2020-11-23 18:46:15

“最美警花”!身材高挑,前凸后翘,妖娆曲线,实打实“S”啊!

健身引导者
2020-11-23 16:58:30

美国知乎:如果美国决定停止从中国进口,中国将遭受多少损失?

强国看点
2020-11-23 11:21:36

讲述:“老公欲求太诡异,我只好离婚保命!”

三煎客
2020-11-23 11:42:47

新剧:张一山版《鹿鼎记》被官媒点名批评!

专家娱乐团队
2020-11-22 07:09:07

普京提议中俄结盟,美发出强硬警告:俄罗斯10年内最大对手是中国

海峡新讯
2020-11-23 16:14:25

女子奔驰新车被追尾,到4S店员工维修,工人却用螺丝刀划出“X”

民生有看点
2020-11-23 18:02:38

以色列突然对华态度大转变!特朗普之前给的好处不管用了吗?

海峡资讯
2020-11-23 10:26:32

中央社:制程技术以12nm及16nm为主,台积电南京厂月产能达2万片

爱集微APP
2020-11-23 19:31:54

马斯克:“空调是我很想做的小项目,可能明年开始着手”

品玩
2020-11-23 14:28:58

人品不好,特狡猾的三大生肖,不得深交,随时可能伤害你,人缘差!

自驾游推荐
2020-11-22 12:25:18

生了一个“铜娃娃”,前婆婆污蔑我性生活不检点

小镇诗人
2020-11-23 16:28:12

好尴尬!鲁豫问李连杰爷爷是谁,李连杰:我敢说,怕你不敢播!

美多数码
2020-11-22 07:50:08
2020-11-24 06:24:59
http://dingyue.ws.126.net/2020/0806/bc1ad477j00qem91a0003c0004g004gc.jpg
互联网干货博主
我是专注分享互联网干货的博主
116文章数 688粉丝数
往期回顾 全部

科技要闻

嫦娥五号探测器发射升空!

头条要闻

官方通报!辽宁盘锦自来水可燃系地下天然气混入

头条要闻

男子勒死老婆带尸体去自首 妻子突然醒来为他求情

体育要闻

湖人邀请德拉维多瓦遭婉拒 后者1年底薪续约骑士

娱乐要闻

不P图也瘦!杨幂生图曝光 脑门抢镜

财经要闻

汽车要闻

够个性挺实用 宝马2系四门轿跑带来独特体验

态度原创

健康
本地
手机
艺术
公开课

打玻尿酸变“僵尸脸”咋回事?

本地新闻

你瞎玩的转笔,成了00后的致富经

手机要闻

iPhone 12手机爆出槽点无数 为什么大家还在买?

艺术要闻

博物馆:记录过去 走向未来

公开课

为什么我一定要卸载这些app:人生毒药