find grep等命令的使用整理,提高效率,Todo
阿新 • • 發佈:2019-01-01
主要是實際工作中比較常用的一些,長期不玩,容易忘記,稍微整理回顧下
以下通過mac bash實踐,linux可能不一樣,man find
命令檢視下
find
find是檔案層次的查詢(在路徑樹中的查詢)
根據檔名稱的查詢
最常用,特別是模糊檔名的查詢,工作中總是容易忘記具體是什麼檔案,記得很模糊
- 查詢當前目錄即其所有子目錄下的 以
t
打頭,.txt
結尾的檔案(這裡的檔案指所有型別,當然包括了目錄之類的檔案)
find . -name "t*.txt"
- 控制目錄查詢深度
-maxdepth number
find . -name "t*" -maxdepth 1 # 一級目錄
- 根據名字查詢時,忽略大小寫
-iname
find . -iname "t*.txt"
- 指定查詢的檔案型別
-type t
True if the file is of the specified type. Possible file types
are as follows:
b block special
c character special
d directory
f regular file
l symbolic link
p FIFO
s socket
find . -name "t*" -type d # 查詢型別為目錄型別
- 相反查詢
-not
find . -not -name "t*"
根據檔案大小查詢
特別是大檔案的查詢,因為這些檔案可能佔用磁碟多,坑是一些無用的檔案之類
- 查詢超過100M的檔案,並具體的顯示出來
find . -size +100M -exec ls -lhG {} \;
grep
grep對檔案內容層面的匹配查詢
- 最常用的,單純的匹配檔案中的字串,且沒有正則,萬用字元之類的
grep include a.c # 或者 grep "include" a.c
- 萬用字元匹配
. 匹配任意一個字元
* 前一字元匹配0次或者任意多次
grep "in." a.c
grep "in.*" a.c
反向匹配
-v
忽略大小寫
-i
利用管道,進行檔案查詢
ls | grep "t.*"
- 遞迴查詢
-r or -R
mubideMacBook-Pro:mydata mubi$ grep "include" -r *
a.c:#include <stdio.h>
test/m1:include a
test/m1:include c
- 顯示匹配內容在檔案中的行號
-n
grep "include" -nr *