如何檢查目錄中是否存在特定型別的檔案?
摘要
有時我們需要確定特定型別的檔案是否存在於某個目錄中。例如,我們可能需要檢查目錄中是否包含 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”命令在基本和多個場景下檢查檔案型別是否存在。
我希望您可以發現這些命令示例有助於有效地理解這個概念。