Linux系列開坑記(四)-檔案查詢工具

濤哥聊Python發表於2019-01-19
image

日常開發工作中,我們經常會碰到有些配置檔案或者日誌檔案找不到的情況,只記得基本的名字,記不得完整路徑。為了更好查詢到檔案,今天我們就來聊下檔案查詢工具。

關於檔案查詢工具,主要兩個:

  1. locate 通過名字來進行檔案查詢,較快

  2. find 在目錄搜尋檔案,較慢

locate

第一個我們要講的就是locate,locate檔案查詢比較簡單,並且速度很快。

主要是因為它是直接搜尋locatedb檔案資料庫,這個資料庫主要是系統檔案資料,它是由cron程式進行定期把檔案更新的,通常是一天一次。在Linux有些發行版,如果locate不能工作,就是因為剛剛初始化系統導致locatedb沒有資料。

如果你要進行全盤搜尋locate是比較方便快捷的快的,也是最簡潔的。

比如我要找我的 db.sqllite3 這個臨時db檔案。

locate db.sqlite3

[圖片上傳失敗…(image-8bba54-1547888201688)]

image

find

第二個就是我們的find,臨時用一下locate還行,但是如果我們有稍微多一些需求就不太方便了。所以更強大的查詢工具就是find了。

find工具能夠根據檔案的各種屬性來進行查詢,非常有利於我們進行高階查詢,功能強大,往往引數指令會多一些。

為了簡單,這裡面我舉幾個簡單而常用的例子。

find . -name views.py  
# 在當前目錄查詢檔名為為views.py 
find ~ -size +5M -name “.jpg” # 在主目錄查詢大於10M的檔案

*find . -type d | grep yourdir  
# 查詢目錄下的目錄檔案並且篩選**yourdir 
*

find . -name “.BAK” -delete # 查詢以BAK為結尾檔案刪除 刪除前進行測試用 -delete替換為 -print 或者可以在git版本控制測試。

find . -name  
“*.py” -exec ls -al  
“{
}”  
;
 
# 當前目錄查詢所有py檔案並且列印 -exec喚醒其他命令,-exec 後面跟命令 {
}表示當前路徑名符號表示,分號是強制要求界定命令結束。

我通常比較喜歡用簡單的方式,而不是更為高階的方式,通過cheat工具給一個其他案例,強烈推薦大家去了解一下cheat命令列幫助工具,對比man,info幫助工具,cheat非常方便日常學習使用。

image

上面其他案例中exec我已經講了,awk文字處理工具後面我會單獨講也不囉嗦了。

這裡簡單提一下xargs,它從標準輸入接受輸入,並把輸入轉換為特定命令的引數列表。可以說xargs是給其他命令傳遞引數的一個過濾器,也是組合多個命令的一個工具。

image

[圖片上傳失敗…(image-71f55b-1547888201688)]

通過find命令輸入被管道到xargs命令,反過來xargs為ls命令構建引數列表,執行ls命令。

關於檔案查詢locate,find 你學會了麼?

Linux日常命令使用,同Docker容器化一樣我會以一個系列進行分享,今天是第四篇,後面我將持續分享更多內容,從Linux日常命令使用到shell指令碼程式設計,歡迎持續進行關注。濤哥將會用最簡單使用的方式分享開發技術的各個方面。

image

相關文章:

Linux系列開坑記(三)-流處理器sed

Linux系列開坑記(二)-神的編輯器Vim

Linux系列開坑記(一)-常用的3個命令

Python web開發從入門到放棄

Docker容器化部署實踐Docker Compose

【私貨】MongoDB 副本集的運維部署

image

來源:https://juejin.im/post/5c42e68d518825265c2feaf5

相關文章