如何检查目录中是否存在特定类型的文件?
摘要
有时我们需要确定特定类型的文件是否存在于某个目录中。例如,我们可能需要检查目录中是否包含 Python 文件。因此,有一些方法,例如 ls、find 等,可以用来确定目录中是否存在 Python 文件。
在本教程中,我们将回顾几种方法来检查特定类型的文件是否存在于目录中。
ls 命令
Linux 中最常用的命令之一是“ls”。它用于显示当前目录中找到的文件和子目录的列表。“ls”命令有几个参数和一个可选参数。它也可以用于标准文件(非目录)。下面是一个示例,我们使用“ls”命令列出所有内容:
示例
$ ls
输出
Desktop Pitcures Documents Tutorials Movies README.dm lib tuple.json lists style_sheet.py modules rpm_packages public class methods 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
让我们开始学习本文旨在介绍的技巧,即如何检查特定类型的文件是否存在于目录中。
虽然 readers.cpp 和 make.cpp 是我们在上面示例中要查找的文件,但在较大的目录中查找它们并不容易或可靠。此外,让机器处理计算更容易得多。
因此,使用通配符是关键。
通配符是一个占位符,通常由单个字符表示,例如星号 (*) 或有时是星号。
让我们回到检索所有具有“.cpp”扩展名的文件。以下是列出所有具有相同扩展名的文件的命令:
示例
$ ls *.cpp
输出
readers.cpp make.cpp
示例
在下面的示例中,我们还将尝试使用其他文件扩展名使用此命令:
$ ls *.txt
输出
expert.txt utilities.txt protected.txt
find 命令
Linux 操作系统中最著名和最常用的命令之一是“find”。根据条件,使用 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 text
在另一个示例中,我们将使用以下命令来确定 /tmp 目录中多个“.txt”文件的类型:
示例
$ file *txt
输出
cd.txt: ASCII text greg.txt: ASCII text ravi.txt: ASCII text
结论
这些是我们可以用来检查特定类型的文件是否存在于目录中的几种方法。一些命令,例如“ls”和“find”,使用文件名和扩展名来确定文件类型是否存在。另一个用于检查文件类型的有用命令是“file”命令。
首先,我们使用“ls”命令使用通配符来查找特定类型的文件。然后我们使用“find”命令进行检查。最后,我们使用“file”命令在基本和多个场景下检查文件类型是否存在。
我希望您可以发现这些命令示例有助于有效地理解这个概念。