如何检查目录中是否存在某种文件类型?
摘要
有时我们需要确定目录中是否存在某种特定的文件类型。例如,我们可能想检查某个目录中是否包含 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"命令在基本场景和多种场景下检查文件类型是否存在。
希望这些命令示例能够帮助您有效地理解这个概念。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

