1. 程式人生 > >find grep等命令的使用整理,提高效率,Todo

find grep等命令的使用整理,提高效率,Todo

主要是實際工作中比較常用的一些,長期不玩,容易忘記,稍微整理回顧下

以下通過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 *

參考