Linux find命令的替代品fd命令
fd命令是Linux中find命令的一个流行的替代品。它是find的一个更快、更友好的版本,并且是用Rust编写的,以提高性能。fd的一些关键特性包括:使用正则表达式进行搜索的能力,指定搜索参数的更自然的语法,以及使用特定文件扩展名或名称进行搜索的能力。
安装
fd命令可以在Linux和macOS上使用你的发行版的软件包管理器进行安装。
在基于Debian的发行版上 –
在Fedora和Centos上 –
在Arch Linux和Manjaro –
在MacOS上 –
另外,你也可以从GitHub仓库中下载最新的版本,然后手动构建和安装,从源头上安装fd。
一旦安装完毕,你可以在终端使用fd命令,就像你使用find命令一样。
基本用法
fd命令的基本用法与find命令类似。这里有几个例子–
查找当前目录中的所有文件 –
寻找具有特定名称的所有文件 –
查找具有特定扩展名的所有文件 –
查找所有包含特定字符串的文件 –
找到在过去24小时内修改的所有文件 –
找到所有属于目录的文件 –
找到所有属于符号链接的文件-
fd命令还有其他几个选项和参数,你可以用它们来定制你的搜索。你可以通过运行fd–help查看选项的完整列表。
指定搜索标准
fd命令允许你指定各种搜索标准以缩小搜索结果。这里有几个例子–
搜索符合特定模式的文件—-。
这将寻找所有符合 “*.txt “模式的文本文件。
搜索大于一定大小的文件 —
这将寻找所有大于10MB的文件
搜索小于一定大小的文件——。
这将寻找所有小于1KB的文件
搜索在一定时间范围内修改过的文件—-。
这将寻找所有在30至60天之前被修改过的文件
搜索具有特定所有者或组的文件—-。
这将寻找由用户 “root “拥有的所有文件
搜索有特定权限的文件 —
这将寻找所有用户具有读、写和执行权限的所有文件。
使用正则表达式进行搜索 –
这将寻找所有名称以小写字母开头的文本文件。
使用特定的路径进行搜索–
这将寻找”/path/to/directory “目录及其子目录中的所有文件。
穿越象征性链接
默认情况下,fd命令在搜索文件时不遵循符号链接。这意味着,如果一个符号链接指向一个目录,fd将不会搜索该目录的内容。然而,你可以使用-L选项来告诉fd在搜索文件时遵循符号链接。
这将寻找所有的文件,包括由符号链接链接的目录中的文件。
你也可以使用-H选项,告诉fd只在符号链接是命令行参数时才遍历它们。
当符号链接作为一个命令行参数传递时,这将寻找所有的文件,包括那些由符号链接链接的目录中的文件。
你也可以使用–no-ignore选项来查找默认情况下被忽略的目录中的文件,比如.git或node_modules文件夹。
你也可以使用–hidden选项来寻找目录中的隐藏文件。
你也可以结合选项来获得特定的结果。
控制目录遍历的深度
fd命令允许你控制搜索文件时的目录遍历深度。默认情况下,fd将递归地搜索整个目录树,但你可以使用-d选项来指定搜索的最大深度。
这将只在当前目录和紧邻的子目录中寻找所有文件。
你也可以使用-D选项来指定搜索的最小深度。
这将只在两层或更深的目录中寻找所有文件。
你也可以把-d和-D结合起来,得到更具体的结果。
这将只在两到三层之间的目录中寻找所有文件。
你也可以用-maxdepth选项代替-d,用-mindepth代替-D,得到同样的结果。
反转搜索结果
fd命令允许你反转搜索结果,这意味着你可以找到不符合指定条件的文件。你可以使用-I选项来反转搜索结果。
例如 −
该命令将返回所有非文本文件的文件。
另一个例子 −
该命令将返回所有小于10MB的文件。
你也可以使用-not选项来反转搜索结果。
该命令将返回所有非文本文件的文件。
对搜索结果执行命令
fd命令允许你对搜索结果执行命令。你可以使用-e选项来指定应该在搜索结果上执行的命令。
例如 −
该命令将显示符合搜索条件的所有文件的内容。
另一个例子 −
这个命令将删除所有符合搜索条件的文件。
你也可以在命令中使用变量来表示搜索结果。变量{}将被搜索结果所取代。
该命令将显示符合搜索条件的所有文件的内容。
另一个例子 −
这个命令将把所有符合搜索条件的文件移到/path/to/destination
目录下。
结论
fd命令是Linux中find命令的一个强大的替代品,提供了一个更快、更友好的搜索文件的方法。fd允许你指定各种搜索条件,如文件名、扩展名、大小和修改时间,还允许你使用正则表达式搜索、遍历符号链接、控制目录遍历深度、反转搜索结果和对搜索结果执行命令。