大多数Linux用户都非常熟悉find命令以及它的常见使用方法,不过今天要说的是find命令有效替代方法,称为fd命令。
fd是一个简单、快速且用户友好的工具,与find命令相比,它的执行速度更快。但是,它并不是要完全取代find,而是为用户提供一个执行速度稍快的易于使用的替代方案。fd命令的一些显着特征包括:
- 易于使用的语法——fd *pattern*而不是find -iname *pattern*。
- 彩色输出,类似于ls命令。
- 快速的性能,开发人员的基准可在此处获得。
- 默认情况下不区分大小写的智能搜索,如果模式容器是大写符号,则切换到区分大小写。
- 默认情况下不查看隐藏文件和目录。
- 默认情况下不查看.gitignore。
如何在Linux中安装fd命令
下面简单说了使用默认包管理器在不同的Linux发行版中安装fd命令,具体如下:
$ sudo apt install fd-find [Debian、Ubuntu和Mint] $ sudo emerge -a sys-apps/fd [Gentoo Linux] $ sudo dnf install fd-find [Fedora 28版本以上] $ sudo pacman -S fd [Arch Linux] $ sudo zypper install fd [OpenSUSE] $ sudo apk add fd [Alpine Linux]
另外,在RedHat Enterprise Linux 8 (RHEL8)、Almalinux 8、EuroLinux 8、CentOS 8、Fedora以及Rocky Linux 8系统上安装如下。
首先从github上的sharkdp获取最新的fd-v*-x86_64-unknown-linux-gnu.tar.gz压缩文件,然后按照下面操作进行:
tar xf fd-v*-x86_64-unknown-linux-gnu.tar.gz
chown -R root:root fd-v*-x86_64-unknown-linux-gnu
cd fd-v*-x86_64-unknown-linux-gnu
sudo cp fd /bin
gzip fd.1
chown root:root fd.1.gz
sudo cp fd.1.gz /usr/share/man/man1
sudo cp autocomplete/fd.bash /usr/share/bash-completion/completions/fd
source /usr/share/bash-completion/completions/fd
fd
注意:将上面fd-v*-x86_64-unknown-linux-gnu.tar.gz替换成相应最新版本即可。
如何在Linux中使用fd命令
与find命令类似,fd有很多用例,首先从检查可用选项开始吧:
# fd -h 或者 # fd --help
接下来看几个例子。你可以不带任何参数运行fd,其输出与ls -R命令非常相似:
# fd
在接下来的fd示例中,小编将使用位于/var/www/html/
的默认WordPress安装目录来搜索不同的文件和文件夹。
在下面的示例中,小编只输出了使用head命令进行管道重定向的较短输出的前10个结果,具体如下:
# fd | head
在Linux中查找所有JPG文件
假设要查找所有jpg文件,可以使用“-e”
标志来按文件扩展名进行过滤:
# fd -e jpg
如果要指定搜索目录,只需将其作为参数提供:
# fd <pattery> <directory>
在Linux中搜索所有PHP文件中的字符串
“-e”
标志可以与模式结合使用,如下所示:
# fd -e php index
上面的命令将查找具有.php
扩展名并在其中包含字符串“ index ”的文件:
如果你想排除一些结果,可以使用如下所示的“-E”
标志:
# fd -e php index -E wp-content
此命令将查找所有扩展名为php的文件,其中包含字符串“ index ”,并排除“ wp-content ”目录中的结果。
查找所有JPG文件并修改权限
与find命令一样,你可以使用-x
或--exec
参数对搜索结果执行并行命令。以下是一个示例,这里将使用chmod更改图像文件的权限:
# fd -e jpg -x chmod 644 {}
以上将找到所有扩展名为jpg的文件并将运行chmod 644 <path-to-file>
。以下是括号的一些有用的解释和用法:
{}
– 将随搜索结果的路径而改变的一个占位符 ( wp-content/uploads/01.jpg )。{.}
– 类似于{}
,但不使用文件扩展名 ( wp-content/uploads/01 )。{/}
: 将被搜索结果的基本名称(01.jpg ) 替换的占位符。{//}
: 当前路径的父路径 ( wp-content/uploads )。{/.}
: 只有基本名称,没有扩展名 ( 01 )。
结论
以上就是对fd命令的简要回顾,一些用户可能会发现它更易于使用且速度更快。正如本文前面提到的,fd并不是要完全取代find命令,而是提供一种简单的用法、更容易的搜索和更好的性能。另外,fd命令不占用太多空间,是一个很好用的工具。
简单来说,在Unix或Linux系统中,”fd”命令是”find”命令的一个简化版本,用于在指定路径下搜索文件和目录。如果想了解fd命令更具体的使用方法,也可以去GitHub官网搜索“fd”进入详情页面了解。