如何检查目录中是否存在某种文件类型?

linuxopen sourceoperating system

摘要

有时我们需要确定目录中是否存在某种特定的文件类型。例如,我们可能想检查某个目录中是否包含 Python 文件。因此,我们可以使用 ls、find 等方法来判断目录中是否存在 Python 文件。

在本教程中,我们将回顾几种检查目录中是否存在特定文件类型的方法。

ls 命令

"ls"是 Linux 中最常用的命令之一。它用于显示当前目录中找到的文件和子目录的列表。"ls"命令有多个参数和一个可选参数。它也可以用于标准文件(非目录)。下面是一个示例,我们使用"ls"命令列出所有内容。

示例

$ ls

输出

桌面 图片 文档 教程 电影 README.dm lib
tuple.json 列表 style_sheet.py 模块 rpm_packages 公共类方法 use_cases.css

如果我们进入目录 /Desktop 并输入命令"ls",它将列出 /Desktop 目录的所有内容。

示例

$ cd Desktop $ ls

输出

readers.cpp
samaritan.sh
expert.txt
fast.jpg
source_code.py
utilities.txt
make.cpp
header.jpg
boot_up.docx
protected.txt

让我们开始学习本文要介绍的技巧,即如何检查目录中是否存在特定文件类型。

虽然我们在上面的示例中查找的是 reader.cpp 和 make.cpp 文件,但在更大的目录中查找它们并不容易,也不太可靠。此外,让机器处理计算要容易得多。

因此,使用通配符是关键。

通配符是一个占位符,通常用单个字符表示,例如星号 (*),有时也用星号表示。

让我们返回检索所有扩展名为".cpp"的文件。以下命令列出了所有具有相同扩展名的文件。

示例

$ ls *.cpp

输出

readers.cpp make.cpp

示例

在以下示例中,我们将尝试使用此命令处理其他一些文件扩展名。

$ ls *.txt

输出

expert.txt utility.txt protected.txt

Find 命令

"find"是 Linux 操作系统中最著名且最常用的命令之一。使用 find 命令根据条件搜索并定位文件和文件夹列表。

以下示例尝试在目录 /hallo 中查找名为"1.txt"的文件。

示例

$ find \ -name "1.txt"

输出

/tmp/hallo/1.txt

让我们返回并使用 find 命令检索所有扩展名为".cpp"的文件。命令。

以下示例使用 find 命令检查目录中是否存在".cpp"文件。输出结果将列出当前目录或子目录中所有以".cpp"为扩展名的文件所在的位置。

示例

$ find /Desktop -type f -name "*.cpp"

输出

/Desktop/readers.cpp
/Desktop/make.cpp
/Desktop/ext_src/booting_process.cpp
/Desktop/notch/filter/install_code.cpp

File 命令

File 命令用于显示文件的类型。当我们需要识别从未遇到过的文件类型,或者文件缺少文件扩展名时,它非常有用。根据我们给出的参数,它还可能显示其他信息,例如压缩文件中包含的数据、大小或文件版本。

在下面的示例中,我们将看到 File 命令最基本的用法,用于检查文件"1.txt"。在输出中,我们将看到它是 ASCII 格式的文件类型。

示例

$ file 1.txt

输出

1.txt : ASCII 文本

在另一个示例中,我们将使用以下命令确定目录 /tmp 中多个".txt"文件的类型:

示例

$ file *txt

输出

cd.txt: ASCII text
greg.txt: ASCII text
ravi.txt: ASCII text

结论

我们可以通过以下几种方法检查目录中是否存在特定文件类型。某些命令(例如"ls"和"find")使用文件名和扩展名来确定文件类型是否存在。另一个用于检查文件类型的有用命令是"file"命令。

首先,我们使用"ls"命令通过通配符定位特定文件类型。然后,我们使用"find"命令进行检查。最后,我们使用"file"命令在基本场景和多种场景下检查文件类型是否存在。

希望这些命令示例能够帮助您有效地理解这个概念。


相关文章


有用资源