03_查詢和檢索
find
- 根據檔名查詢
find pathname -options [-print -exec -ok -name -type...]
- 在目錄中搜尋檔案,path指定目錄路徑,系統從這裡開始沿著目錄樹向下查詢檔案。它是一個路徑列表,相互用空格分離,如果不寫path,那麼預設為當前目錄。Expression 是find命令接受的表示式,find命令的所有操作都是針對表示式的。
- 一條最常用的find命令--在當前目錄及子目錄下查詢所有以file開頭的檔名。
$ find . -name 'file*'
$ find \/ -name 'vimrc'
$ find ~ -name '*.c'
$ find /usr/ -name "*tmp*" -exec ls -l { } \;
find ./ -name "*tmp" -ok rm { } \;
sudo find ./ -size +65M
//搜尋大於65M的檔案
sudo find ./ -size +65M -size -100M -exec ls -lh {} \;
//搜尋大於65M的檔案小於100M的檔案,並按格式顯示
注意:
-
-exec
表示對結果集執行二次命令 -
*
表示萬用字元 -
?
表示只匹配一個字元 -
\;
固定語法,表示結束符 -
-type
按型別來搜尋
grep
- 根據內容檢索
grep [options] PATTERN [FILE...]
- 在指定檔案中搜尋特定的內容,並將含有這些內容的行輸出到標準輸出。若不指定檔案
名,則從標準輸入讀取。
- [options]部分包含的主要引數:
-I:不區分大小寫(只適用於單字元)。
-h:查詢多檔案時不顯示檔名。
-l:查詢多檔案時只輸出包含匹配字元的檔名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文字的錯誤資訊。
-v:顯示不包含匹配文字的所有行。
-R: 連同子目錄中所有檔案一起查詢。
- 比如到系統標頭檔案目錄下查詢所有包含printf的檔案
$ grep 'printf' /usr/include -R
xargs
- 從標準輸入建立和執行命令列
xargs [OPTION] [command]
- 它的作用是將引數列表轉換成小塊分段傳遞給其他命令,以避免引數列表過長的問題
- 在使用find命令的-exec選項處理匹配到的檔案時,find命令將所有匹配到的檔案一起傳遞給exec執行。但有些系統對能夠傳遞給exec的命令長度有限制,這樣在find命令執行幾分鐘之後,就會出現溢位錯誤。錯誤資訊通常是“引數列太長”或“引數列溢位”。這就是xargs命令的用處所在,特別是與find命令一起使用。
- find命令把匹配到的檔案傳遞給xargs命令,而xargs命令每次只獲取一部分檔案而不是全部,不像-exec選項那樣。這樣它可以先處理最先獲取的一部分檔案,然後是下一批,並如此繼續下去。
- 查詢系統中的每一個普通檔案,然後使用xargs命令來測試它們分別屬於哪類檔案:
find . -type f | xargs file
查詢usr目錄下名字以“tmp”開頭的檔案,將其詳細資訊列出。
//錯誤,結果是當前目錄的ls -l資訊
find /usr -name "tmp*" | ls -l
find /usr -name "tmp*" | xargs ls -l
find /usr -name "tmp*" -print0 | xargs -0 ls -l
- -print0表示輸出以null分隔(-print使用換行);-0表示輸入以null分隔。查詢當前目錄下,檔名包含“bin”字串的檔案,並在檔案中搜尋“printf”這個詞
find ./ -name "*bin*" | grep "printf"
find ./ -name "*bin*" | xargs grep "printf"
find ./ -name "*bin*" -print0 | xargs -0 grep "printf"
相關文章
- EI 和 SCI 檢索號查詢
- SQL Server之查詢檢索操作SQLServer
- PostgreSQL一複合查詢SQL優化例子-(多個exists,範圍檢索,IN檢索,模糊檢索組合)SQL優化
- PostgreSQL實時高效搜尋-全文檢索、模糊查詢、正則查詢、相似查詢、ADHOC查詢SQL
- 航班資訊查詢和檢索系統-資料結構課程設計資料結構
- 【搜尋引擎】Solr全文檢索近實時查詢優化Solr優化
- Elasticsearch 查詢結果分組統計,聚合檢索(group by stats)Elasticsearch
- 雲脈紙質文件管理系統:多重檢索輕鬆查詢文件
- SQL查詢的:子查詢和多表查詢SQL
- mysql查詢優化檢查 explainMySql優化AI
- 擊敗二分檢索演算法——插值檢索、快速檢索演算法
- 檢視查詢報錯
- 【MySQL】檢視&子查詢MySql
- oracle 常用查詢檢視Oracle
- [Leetcode]303.區域和檢索&&304.二維區域和檢索LeetCode
- 資訊檢索
- 影象檢索:資訊檢索評價指標mAP指標
- 【高階RAG技巧】使用二階段檢索器平衡檢索的效率和精度
- oracle 精確查詢和模糊查詢Oracle
- MySQL聯結查詢和子查詢MySql
- 效能優化|多複雜表關聯查詢,你必須要知道的檢索姿勢!優化
- 基於ElasticSearch實現商品的全文檢索檢索Elasticsearch
- 使用子查詢檢索資料
- 檢視慢查詢進度
- 資料檢索
- Elasticsearch檢索文件。Elasticsearch
- Oracle全文檢索Oracle
- 【SQL】Oracle查詢轉換之物化檢視查詢重寫SQLOracle
- 排序和查詢排序
- 檢視檔名稱和查詢檔案中所含字串字串
- Elasticsearch中的Term查詢和全文查詢Elasticsearch
- MySQL之連線查詢和子查詢MySql
- 順序查詢和二分查詢
- 全域性檢查點和增量檢查點
- 【PDB】Oracle跨PDB檢視查詢Oracle
- MySQL 查詢的成本的檢視MySql
- OushuDB 檢視查詢執行情況
- 【MV】物化檢視查詢重寫