如何在 Linux 中查找具有特定扩展名的文件

使用基于 Linux 的操作系统通常需要管理大量文件和目录。有时,您可能需要找到具有特定扩展名的文件以执行任务,例如软件开发、数据分析或文件组织。在这种情况下,知道如何有效地找到具有特定扩展名的所有文件是至关重要的。

本指南将为您提供在 Linux 系统中搜索和识别具有特定扩展名的文件所需的知识和工具。通过掌握使用“find”和“grep”等强大的命令行实用程序,您可以简化您的工作流程并提高您在 Linux 环境中的工作效率。让我们深入研究在 Linux 中查找具有特定扩展名的文件的过程。

为什么查找带扩展名的文件很重要? 

文件扩展名用于识别文件类型和用于打开它的程序。例如,扩展名为 .jpg 或 .png 的文件是图像文件,而扩展名为 .pdf 的文件是文档。由于以下原因,必须找到具有扩展名的文件: 

  1. 组织文件:带有扩展名的文件有助于组织文件。例如,如果您想查找计算机上的所有图像文件,您可以搜索扩展名为 .jpg、.png 或 .gif 的文件。 
  2. 打开文件:带有扩展名的文件有助于打开文件。例如,如果您的目的是打开文本文件,则可以使用文本编辑器打开扩展名为 .txt 的文件。 
  3. 疑难解答:带有扩展名的文件有助于解决文件问题。例如,如果您在打开文件时遇到问题,您可以检查扩展名以查看它是否与您的程序兼容。 

在 Linux 中查找具有特定扩展名的文件

以下是在 Linux 中查找所有带扩展名的文件的方法:

1.使用查找命令 

find 命令是 Linux 中最强大的命令之一。它用于根据各种条件(包括文件扩展名)搜索文件和目录。要使用 find 命令查找包含特定扩展名的所有文件,请使用以下语法: 

find /path/to/search -name "*.extension" 

例如,要查找当前目录及其子目录中的所有文本文件,请使用以下命令: 

find /home/fosslinux/Foss -name *.txt*

查找扩展名为 .txt 的文件

查找扩展名为 .txt 的文件

要查找用户主目录中所有扩展名为.pdf 的文件,请使用以下命令: 

find /home/fosslinux/Foss/ -name *.pdf*

查找所有扩展名为 .pdf 的文件

查找所有扩展名为 .pdf 的文件

优点: 
  • find 命令功能强大,可以根据各种条件(包括文件扩展名)搜索文件。 
  • find 命令可以与其他命令一起使用,使其成为一个多功能工具。 
缺点: 
  • find 命令可能需要很长时间来搜索文件,尤其是在大目录结构中搜索文件时。 
  • find 命令的语法可能很复杂,尤其是对于初学者而言。 

2.使用定位命令 

locate 命令用于使用预建的文件数据库搜索系统上的文件和目录。locate 命令比 find 命令快,但可能无法找到数据库中不存在的最近创建的文件。要使用 locate 命令查找包含特定扩展名的所有文件,请使用以下语法: 

locate *.extension

例如,要查找系统上的所有文本文件,请使用以下命令: 

locate *.txt

找到所有扩展名为 .txt 的文件

找到所有扩展名为 .txt 的文件

要查找系统上所有扩展名为.png的文件,请使用以下命令: 

locate *.png

找到所有扩展名为 .png 的文件

找到所有扩展名为 .png 的文件

要在home/fosslinux /Foss目录中查找所有扩展名为.docx的文件,请使用以下命令: 

locate /home/fosslinux/Foss/ *.docx

找到所有扩展名为 .docx 的文件

找到所有扩展名为 .docx 的文件

优点: 
  • locate 命令比 find 命令更快。 
  • locate 命令简单易用,尤其适合初学者。 
缺点: 
  • locate 命令可能找不到最近创建但尚未在数据库中的文件。 
  • locate 命令可能找不到已删除或移动的文件。 

3.使用grep命令 

grep 命令用于搜索文件中的模式。它还可用于查找具有特定扩展名的文件。要使用 grep 命令查找具有特定扩展名的所有文件,请使用以下语法: 

ls * | grep \.extension$ 

例如,要查找当前目录及其子目录中的所有文本文件,请使用以下命令: 

ls * | grep \.txt$ 

使用 grep 命令查找所有扩展名为 .txt 的文件

使用 grep 命令查找所有扩展名为 .txt 的文件

要查找用户主目录中所有扩展名为.py 的文件,请使用以下命令: 

ls * | grep \.py$

使用 grep 命令定位所有扩展名为 .py 的文件

使用 grep 命令定位所有扩展名为 .py 的文件

优点: 
  • grep 命令简单易用,尤其适合初学者。 
  • grep 命令可以根据正则表达式搜索文件,是一个多功能的工具。 
缺点: 
  • 如果正则表达式不精确,grep 命令可能会找到扩展名错误的文件。 
  • grep 命令可能比其他方法慢,尤其是在目录结构很大的情况下。 

4.使用文件管理器 

大多数 Linux 文件管理器,例如 Nautilus、Thunar 和 Dolphin,都具有搜索功能,可用于查找具有特定扩展名的文件。要使用搜索功能,请打开文件管理器并在搜索栏中输入搜索词。然后选择扩展名过滤器以按文件扩展名过滤结果。 

要使用 Nautilus 文件管理器查找/home目录中所有扩展名为.png的文件,请执行以下步骤: 

  • 首先,打开 Nautilus 并转到/home目录。导航到主目录导航到主目录
  • 单击窗口右上角的搜索栏。点击搜索按钮单击搜索按钮
  • 在搜索栏中输入*.png ,然后按 Enter。搜索扩展名为 .png 的文件搜索扩展名为 .png 的文件
  • Nautilus 将显示/home目录中所有扩展名为.png的文件。扩展名为 .png 的文件扩展名为 .png 的文件
优点: 
  • 文件管理器搜索功能简单易用,尤其适合初学者。 
  • 文件管理器搜索功能提供了图形界面,使搜索结果更加直观。 
缺点: 
  • 文件管理器搜索功能可能不如命令行工具强大。 
  • 文件管理器搜索功能可能无法提供与命令行工具一样多的搜索条件控制。 

5.使用定位数据库 

locate 命令在预建数据库中搜索文件。默认情况下,定位数据库每天更新一次。但是,您可以使用 updatedb 命令手动更新数据库。要手动更新数据库,请使用以下命令: 

sudo updatedb

更新数据库

更新数据库

首先,要查找系统上所有扩展名为.sh 的文件,请使用updatedb命令更新定位数据库,如上所示。 然后,使用以下命令查找所有扩展名为.sh的文件: 

locate *.sh

找到所有扩展名为 .sh 的文件

找到所有扩展名为 .sh 的文件

在/home/fosslinux/Foss 中查找所有扩展名为.conf的文件目录,使用以下命令: 

locate /home/fosslinux/Foss/ *.conf

找到所有扩展名为 .conf 的文件

找到所有扩展名为 .conf 的文件

优点: 
  • 手动更新定位数据库可确保数据库是最新的。 
  • 手动更新定位数据库可以改善搜索结果。 
缺点: 
  • 手动更新定位数据库可能需要很长时间,尤其是当系统上有很多文件时。 
  • 手动更新定位数据库需要 sudo 权限,这可能不适用于所有用户。 

结论 

查找带扩展名的文件是 Linux 中的一项基本任务。在 Linux 中查找带扩展名的文件有多种方法,包括 find 命令、locate 命令、grep 命令、文件管理器搜索功能和 locate 数据库。上面强调的每种方法都有其优点和缺点,方法的选择将取决于用户的偏好和要求。 

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注