在使用Linux系统的时候,经常会发现需要搜索具有不同扩展名的多个文件,想必大多用户都遇到过这种情况,尤其是在终端内工作时。
实际上,我们可以使用多个Linux实用程序来定位文件系统上的文件,但查找具有多个扩展名的文件有时会很棘手并且需要特定的命令。
在Linux文件系统中,查找文件的许多实用程序之一是find实用程序。在本文中,小编将介绍几个使用find命令的典型示例,以帮助我们一次找到多个文件名。
find命令简介
find命令是一个多功能工具,用于在Linux文件系统中搜索文件和目录。find实用程序的最简单、最通用的语法如下:
find directory options [expression]
以下是其功能选项的简要概述:
- directory:想要开始搜索的目录
- options:用于优化搜索的附加参数
- expression:匹配文件或目录的条件
接下来让我们继续看Linux中使用find命令按照后缀名搜索文件的一些示例吧。
搜索多个文件扩展名
要查找具有不同扩展名的文件,可以使用-name
与-o
(OR)运算符组合的选项,这允许你指定多个模式来匹配不同的文件类型。让我们通过一些例子来说明其工作原理。
示例1:查找.sh和.txt文件
假设你想查找当前目录中带有.sh
和.txt
扩展名的所有文件,可以通过运行以下命令来执行此操作:
find . -type f \( -name "*.sh" -o -name "*.txt" \)
上述命令的解释:
.
表示当前目录-type
选项用于指定文件类型,这里我们搜索的是常规文件,这由f
表示-name
选项用于指定搜索模式,在本例中为文件扩展名-o
表示“或”的意思
个人建议将文件扩展名用方括号括起来,并在命令中使用 \(反斜杠)转义字符。
示例2:查找.sh、.txt和.c文件
要查找三个带有.sh
、.txt
和.c
扩展名的文件名,请输入以下命令:
find . -type f \( -name "*.sh" -o -name "*.txt" -o -name "*.c" \)
示例3:查找.png、.jpg、.deb和.pdf文件
下面是另一个示例,搜索扩展名为.png
、.jpg
、.deb
和.pdf
的文件:
find /home/aaronkilik/Documents/ -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.deb" -o -name ".pdf" \)
示例 4:使用通配符查找
此外,还还可以使用通配符来匹配模式。例如,要查找所有带有.log
、.txt
或.cfg
扩展名的文件:
find /var/log/ -type f \( -name "*.log" -o -name "*.txt" -o -name "*.cfg" \)
示例 5:查找具有复杂模式的文件
假设想查找以.tar.gz
或.zip
结尾的文件,示例命令如下:
find /path/to/search/ -type f \( -name "*.tar.gz" -o -name "*.zip" \)
当你仔细观察以上所有命令时,会发现一个小技巧,即在find命令中使用-o
选项,它使你能够向搜索数组中添加更多的文件名,并且还能知道你正在搜索的文件名或文件扩展名。
小结
在本文当中,小编简单介绍如何使用find命令搜索具有多个扩展名的文件。通过将-name
选项与-o
运算符结合使用,你可以轻松地在一个命令中找到符合多种模式的文件。
当然,Linux命令功能非常的强大,想要深入了解find命令及其众多功能,可以在终端中输入man find
以查看find手册页:
man find
总之,请随时尝试find命令并找到适应你特定需求的参数组合。