Linux檔案查詢工具的探索
經過 Linux 系統不斷探索,不斷髮展到現代文明,我們都必須堅信:一個典型的 Linux 系統是包含很多檔案的,即是由檔案組成的!那麼新的問題就會湧現到我們的腦海中-- “我們如何查詢呢?”。當然,發展到現在的Linux 檔案系統已經被良好地組織起來了。不過呢,海量的檔案往往會引起一些可怕的問題。
作為一名LINUX 運維人員,每天面對著這些 linux 系統實際生產環境,必須有過硬的技術能力和良好的心理素質才能勝任。在今天這篇文章中,我們將介紹2 個用來查詢檔案的工具。
命令locate , updatedb , find 和 xargs 都是 GNU 專案 findutils 軟體包的一部分。這個GUN 專案提供了大量的線上文件,這些文件相當出色,如果你在高安全性的環境中使用這些程式,你應該讀讀相關文件。當然,在編寫這篇文章過程中我還參考了 這本書,內容很貼近實踐,很有理論指導實踐價值的一本書籍。
GNU 查詢實用程式是 GNU 作業系統的基本目錄搜尋實用程式。這些程式通常與其他程式結合使用,以便向其他命令提供模組化和強大的目錄搜尋和檔案定位功能。
此包隨附的工具包括:
Find -- search for files in a directory hierarchy
// 在目錄層次結構中搜尋檔案
locate --list files in databases that match a pattern
// 列出與模式匹配的資料庫中的檔案
updatedb -- update a file name database
// 更新檔名資料庫
xargs -- build and execute command lines from standard input
// 從標準輸入生成和執行命令列
find 程式搜尋目錄樹以查詢檔案或檔案組。它遍歷目錄樹並報告與使用者規範匹配的檔案的所有出現。find 程式包括非常強大的搜尋功能。
locate 程式掃描一個或多個檔名資料庫並顯示任何匹配項。如果檔案存在於上一個檔名資料庫更新期間,這可用作非常快速的查詢命令。
updatedb 程式更新定位程式使用的檔名資料庫。檔名資料庫包含上次更新資料庫時在特定目錄樹中的檔案列表。這通常每晚由 cron 系統守護程式執行。
xargs 程式透過收集它在標準輸入上讀取的引數來生成和執行命令列。大多數情況下,這些引數是由 find 生成的檔名列表。
下面是一個示例操作,使子目錄docs 中的所有類HTML 檔案由所有使用 find 和 xargs 的可讀性。這是一個典型的示例,說明 Find 和 xarg 如何與其他實用程式一起使用,以提供強大的目錄遍歷功能。
[centos@linux ~]$ find docs -name '*.html' -print0 | xargs -0 chmod a+r
查詢檔案的簡單方法-- locate
Locate 命令會執行一次快速的路徑名資料庫搜尋程式,同時輸出每個與給定子字串相匹配的路徑名稱。例如:我們想要找到“test/” 目錄下所有以“zip” 開頭的程式名稱。接下來,我們可以以這種方式使用 locate 命令,用來找到我們想要的檔案:
[me@linux ~]$ locate test/zip
locate 命令將會搜尋它的路徑名資料庫,輸出任一個包含字串“tset/zip” 的路徑名:
114/usr/test/zip
/usr/test/zipinfo
/usr/test/zipgrep
複雜點的話, locate 可以結合其它工具,比如說 grep 命令,來設計更加有趣的搜尋方式:
[Centos@Linux ~]$ locate zip | grep test
/test/bunzip2
/test/bzip2
/test/gzip
/usr/test/unzip
/usr/test/unzipsfx
/usr/test/zip
/usr/test/zipgrep
/usr/test/zipinfo
查詢檔案的複雜方式--find
locate 程式有一個缺陷是隻能依據檔名來查詢檔案,而 find 程式支援基於各種各樣的屬性搜尋一個給定目錄或者它的子目錄,來執行查詢檔案程式。本人建議要花費大量的時間去學習 find 命令,因為它有許多有趣的特性,很有意思的。
比較簡單的應用方式中, find 命令可接收一個或多個目錄名稱來執行搜尋程式。例如,輸出我們的家目錄的路徑名列表:
[Centos@linux ~]$ find ~
對於一個比較活躍的使用者帳號,這條命令將會產生一張很大的列表。避免檢視不方便的現象,我們可以把這個列表透過管道符號輸出到其它的程式中。例如:使用 wc 程式來計算出檔案的數量:
[Centos@ ~]$ find ~ | wc -l
10029
透過find 命令用來找到符合特定標準的檔案,這就是它的魅力所在。
個人總結了些find 命令選項,這些選項被用作配合find 命令限定一定的搜尋範圍。每當構建 find 表示式的時候,這些選型可能會被其它的測試條件和行為包含或者覆蓋。常見選項的列表:
選型 |
描述 |
-depth |
指示 find 程式先處理目錄中的檔案,再處理目錄自身。當指定-delete 行為時,會自動應用這個選項。 |
-maxdepth levels |
當執行測試條件和行為的時候,設定 find 程式陷入目錄樹的最大級別數 |
-mindepth levels |
在應用測試條件和行為之前,設定 find 程式陷入目錄數的最小級別數。 |
-mount |
指示 find 程式不要搜尋掛載到其它檔案系統上的目錄。 |
-noleaf |
指示 find 程式不要基於自己在搜尋 Unix 的檔案系統的假設,來最佳化它的搜尋。在搜尋 DOS/Windows 檔案系統和CD/ROMS 的時候,我們需要這個選項 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2764766/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 檔案查詢Linux
- Linux系列開坑記(四)-檔案查詢工具Linux
- Linux查詢大檔案Linux
- linux 查詢檔案命令 findLinux
- Linux 查詢檔案的正確方式Linux
- linux 中根據檔案的大小進行檔案的查詢Linux
- 推薦2款檔案系統中查詢檔案的工具
- 查詢計算大檔案的桌面程式工具
- Linux中查詢最大檔案的方法有哪些?Linux
- 檔案查詢
- 如何在Linux中查詢一個檔案Linux
- Linux 裝置檔案/dev/*詳解、查詢Linuxdev
- 檔案批次查詢複製匯出,按檔名批次查詢檔案,按檔案內容批次查詢檔案
- 如何在 Linux 中查詢最大的 10 個檔案Linux
- 檔案查詢命令
- 【轉載】Linux查詢檔案安裝路徑Linux
- LINUX下查詢大檔案及大的資料夾Linux
- linux查詢某段時間修改的檔案的總大小Linux
- linux批次find查詢檔案並批次替換覆蓋該檔案Linux
- Duplicate File Finder Pro Mac重複檔案查詢工具Mac
- 重複檔案查詢清理工具Duplicate File Finder pro
- Mac重複檔案查詢工具——Duplicate File Finder pro for MacMac
- 在Linux中,如何使用grep命令查詢檔案中的內容?Linux
- MySQL的my.ini檔案查詢MySql
- 查詢檔案位置路徑
- Linux的VI (連線行,查詢和替換,多檔案編輯)Linux
- Duplicate File Finder pro mac啟用 ;重複檔案查詢工具Mac
- Linux 學習筆記--環境變數與檔案查詢Linux筆記變數
- Linux查詢哪個程式佔用檔案或資料夾Linux
- 查詢指定的檔案:find、locate、which、whereis
- 在檔案上使用 SQL 查詢的示例SQL
- Python查詢包含指定字串的所有檔案Python字串
- Linux基礎命令---host域名查詢工具Linux
- python檔案查詢之find命令Python
- java-遞迴(檔案查詢)Java遞迴
- Linux深入探索12-檔案系統Linux
- 重複檔案查詢和磁碟整理工具:Tidy Up 5 for MacMac
- 重複檔案查詢清理工具:Gemini 2 Mac中文版Mac