如何在 Linux 中使用通配符列出特定文件

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本教程将引导你理解并实际应用 Linux 通配符,这是一个强大的工具,可让你根据特定模式列出、复制、移动和删除文件。通过本教程的学习,你将能够利用通配符简化文件管理任务,并在 Linux 命令行中提高工作效率。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/FileandDirectoryManagementGroup -.-> linux/wildcard("Wildcard Character") linux/FileandDirectoryManagementGroup -.-> linux/find("File Searching") linux/FileandDirectoryManagementGroup -.-> linux/which("Command Locating") subgraph Lab Skills linux/echo -.-> lab-409872{{"如何在 Linux 中使用通配符列出特定文件"}} linux/ls -.-> lab-409872{{"如何在 Linux 中使用通配符列出特定文件"}} linux/wildcard -.-> lab-409872{{"如何在 Linux 中使用通配符列出特定文件"}} linux/find -.-> lab-409872{{"如何在 Linux 中使用通配符列出特定文件"}} linux/which -.-> lab-409872{{"如何在 Linux 中使用通配符列出特定文件"}} end

理解 Linux 通配符

Linux 通配符,也称为 shell 通配符或路径名模式匹配,是命令行中用于根据模式匹配和选择多个文件或目录的特殊字符。这些强大的工具使你能够更高效地执行各种文件管理任务,例如列出、复制、移动或删除与特定模式匹配的文件。

最常见的 Linux 通配符有:

  • *:匹配任意数量的字符,包括零个字符。
  • ?:匹配单个字符。
  • []:匹配方括号内包含的任意一个字符。

例如,命令 ls *.txt 将列出当前目录中所有具有 .txt 扩展名的文件,而 cp file?.txt backup/ 将把所有文件名只有一个字符且扩展名为 .txt 的文件复制到 backup/ 目录中。

## 列出所有具有.txt 扩展名的文件
ls *.txt

## 将所有文件名只有一个字符且扩展名为.txt 的文件复制到 backup/ 目录中
cp file?.txt backup/

通配符可以组合和嵌套以创建更复杂的模式,使你能够精确地定位特定的文件或目录。理解并有效地使用 Linux 通配符可以显著提高你在使用命令行时的生产力和效率。

使用通配符进行文件列表操作

Linux 通配符最常见的用途之一是根据特定模式列出文件和目录。用于列出目录内容的 ls 命令可以与通配符结合使用,以仅显示符合所需条件的文件或目录。

## 列出当前目录中的所有文件
ls

## 列出所有具有.txt 扩展名的文件
ls *.txt

## 列出所有以 "file" 开头且扩展名只有一个字符的文件
ls file?.?

## 列出所有以 "a" 或 "b" 开头的文件和目录
ls [ab]*

通过使用 * 通配符,你可以列出当前目录中的所有文件。若要缩小搜索范围,可以在 ls 命令后添加一个模式,例如 *.txt 以仅列出具有 .txt 扩展名的文件。

? 通配符可用于匹配单个字符,这对于列出具有特定命名约定的文件很有用。例如,file?.? 将匹配 file1.txtfile2.pdffileA.doc 之类的文件。

[] 通配符允许你指定要匹配的字符范围或字符集。例如,[ab]* 将列出所有以 "a" 或 "b" 开头的文件和目录。

通过理解并有效使用这些通配符模式,你可以快速高效地列出与任务相关的文件和目录,在使用 Linux 命令行时节省时间并提高工作效率。

通配符列表的实际示例

既然你已经对 Linux 通配符以及如何使用它们进行文件列表操作有了基本的了解,那么让我们来探讨一些实际示例,以展示它们的多功能性。

按扩展名列出文件

假设你有一个包含各种文件类型的目录,并且你只想列出具有特定扩展名的文件,例如 .jpg.pdf。你可以使用 * 通配符来实现这一点:

## 列出所有.jpg 文件
ls *.jpg

## 列出所有.pdf 文件
ls *.pdf

列出具有特定前缀或后缀的文件

如果你需要根据特定的命名模式列出文件,可以利用通配符来定位所需的文件。例如,要列出所有以 “report” 开头或以 “_backup” 结尾的文件:

## 列出所有以 "report" 开头的文件
ls report*

## 列出所有以 "_backup" 结尾的文件
ls *_backup

列出具有特定字符范围的文件

[] 通配符允许你指定要匹配的字符范围。当你需要列出文件名中具有特定字符模式的文件时,这会很有用。例如,要列出所有文件名只有一个字符且扩展名为 .txt 的文件:

## 列出所有文件名只有一个字符且扩展名为.txt 的文件
ls [a-z]?.txt

通过理解和实践这些实际示例,你将能够有效地利用 Linux 通配符来完成各种文件管理任务,从而在使用命令行时提高你的效率和生产力。

总结

Linux 通配符,也称为 shell 通配符或路径名模式匹配,是一种特殊字符,可让你根据模式匹配和选择多个文件或目录。本教程探讨了最常见的通配符,如 *?[],并展示了如何利用它们进行高效的文件列表操作。通过理解并有效使用 Linux 通配符,你在使用命令行时可以显著提高生产力和效率,从而能够快速、精确地定位特定的文件或目录。