Linux find命令的替代品fd命令

Linux find命令的替代品fd命令

fd命令是Linux中find命令的一个流行的替代品。它是find的一个更快、更友好的版本,并且是用Rust编写的,以提高性能。fd的一些关键特性包括:使用正则表达式进行搜索的能力,指定搜索参数的更自然的语法,以及使用特定文件扩展名或名称进行搜索的能力。

安装

fd命令可以在Linux和macOS上使用你的发行版的软件包管理器进行安装。

在基于Debian的发行版上 –

sudo apt-get install fd-find

在Fedora和Centos上 –

sudo yum install fd-find

在Arch Linux和Manjaro –

sudo pacman -S fd

在MacOS上 –

brew install fd

另外,你也可以从GitHub仓库中下载最新的版本,然后手动构建和安装,从源头上安装fd。

cargo install --force fd-find

一旦安装完毕,你可以在终端使用fd命令,就像你使用find命令一样。

基本用法

fd命令的基本用法与find命令类似。这里有几个例子–

查找当前目录中的所有文件 –

fd .

寻找具有特定名称的所有文件 –

fd testfile

查找具有特定扩展名的所有文件 –

fd -e txt

查找所有包含特定字符串的文件 –

fd -s "test file"

找到在过去24小时内修改的所有文件 –

fd -t f -mtime -1

找到所有属于目录的文件 –

fd -t d

找到所有属于符号链接的文件-

fd -t l

fd命令还有其他几个选项和参数,你可以用它们来定制你的搜索。你可以通过运行fd–help查看选项的完整列表。

指定搜索标准

fd命令允许你指定各种搜索标准以缩小搜索结果。这里有几个例子–

搜索符合特定模式的文件—-。

fd -e txt -p "*.txt"

这将寻找所有符合 “*.txt “模式的文本文件。

搜索大于一定大小的文件 —

fd -L 10M

这将寻找所有大于10MB的文件

搜索小于一定大小的文件——。

fd -S 1K

这将寻找所有小于1KB的文件

搜索在一定时间范围内修改过的文件—-。

fd -t f -mtime +30 -mtime -60

这将寻找所有在30至60天之前被修改过的文件

搜索具有特定所有者或组的文件—-。

fd -u root

这将寻找由用户 “root “拥有的所有文件

搜索有特定权限的文件 —

fd -x +rwx

这将寻找所有用户具有读、写和执行权限的所有文件。

使用正则表达式进行搜索 –

fd -e txt -r "^[a-z]"

这将寻找所有名称以小写字母开头的文本文件。

使用特定的路径进行搜索–

fd -p "/path/to/directory"

这将寻找”/path/to/directory “目录及其子目录中的所有文件。

穿越象征性链接

默认情况下,fd命令在搜索文件时不遵循符号链接。这意味着,如果一个符号链接指向一个目录,fd将不会搜索该目录的内容。然而,你可以使用-L选项来告诉fd在搜索文件时遵循符号链接。

fd -L -t f

这将寻找所有的文件,包括由符号链接链接的目录中的文件。

你也可以使用-H选项,告诉fd只在符号链接是命令行参数时才遍历它们。

fd -H -t f

当符号链接作为一个命令行参数传递时,这将寻找所有的文件,包括那些由符号链接链接的目录中的文件。

你也可以使用–no-ignore选项来查找默认情况下被忽略的目录中的文件,比如.git或node_modules文件夹。

fd --no-ignore -t f

你也可以使用–hidden选项来寻找目录中的隐藏文件。

fd --hidden -t f

你也可以结合选项来获得特定的结果。

控制目录遍历的深度

fd命令允许你控制搜索文件时的目录遍历深度。默认情况下,fd将递归地搜索整个目录树,但你可以使用-d选项来指定搜索的最大深度。

fd -d 2 -t f

这将只在当前目录和紧邻的子目录中寻找所有文件。

你也可以使用-D选项来指定搜索的最小深度。

fd -D 2 -t f

这将只在两层或更深的目录中寻找所有文件。

你也可以把-d和-D结合起来,得到更具体的结果。

fd -d 2 -D 3 -t f

这将只在两到三层之间的目录中寻找所有文件。

你也可以用-maxdepth选项代替-d,用-mindepth代替-D,得到同样的结果。

fd -maxdepth 2 -mindepth 3 -t f

反转搜索结果

fd命令允许你反转搜索结果,这意味着你可以找到不符合指定条件的文件。你可以使用-I选项来反转搜索结果。

例如

fd -I -e txt

该命令将返回所有非文本文件的文件。

另一个例子

fd -I -L 10M

该命令将返回所有小于10MB的文件。

你也可以使用-not选项来反转搜索结果。

fd -not -e txt

该命令将返回所有非文本文件的文件。

对搜索结果执行命令

fd命令允许你对搜索结果执行命令。你可以使用-e选项来指定应该在搜索结果上执行的命令。

例如

fd -e cat

该命令将显示符合搜索条件的所有文件的内容。

另一个例子

fd -e rm

这个命令将删除所有符合搜索条件的文件。

你也可以在命令中使用变量来表示搜索结果。变量{}将被搜索结果所取代。

fd -e "cat {}"

该命令将显示符合搜索条件的所有文件的内容。

另一个例子

fd -e "mv {} /path/to/destination"

这个命令将把所有符合搜索条件的文件移到/path/to/destination目录下。

结论

fd命令是Linux中find命令的一个强大的替代品,提供了一个更快、更友好的搜索文件的方法。fd允许你指定各种搜索条件,如文件名、扩展名、大小和修改时间,还允许你使用正则表达式搜索、遍历符号链接、控制目录遍历深度、反转搜索结果和对搜索结果执行命令。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Linux 基础