Linux下的搜尋工具find基本用法

2021-07-27 15:47:54 字數 1681 閱讀 2676

galeki的部落格 

我們經常要在日常的工作中查詢檔案,要說linux下最強大的檔案查詢工具,非find莫屬。find可以從檔名、讀取修改時間、大小、型別等等來篩選檔案,可以完成日常幾乎所有的查詢需求。

來看乙個簡單的例子:

find /tmp/ -name

'galeki*'

意思就是在/tmp目錄下找出以「galeki」開頭的檔案,-name指出是對檔名進行篩選,是不是很簡單明瞭?除了檔名,find還有更強大的篩選條件:

引數意義-atime n上一次訪問時間在n*24小時前以內的檔案

-ctime n上一次狀態改變在n*24小時前以內的檔案

-mtime n上一次修改時間在n*24小時前以內的檔案

-newer file比file所指的檔案還要新的檔案

2.大小:

引數意義-size n[bkmg]大小為n(b為位元,k為kb,m為mb,g為gb)的檔案

引數意義

-user name所有者使用者名稱是name的檔案

-group name所有者使用者組群名稱是name的檔案

find /tmp/ -name

'sess*' -mtime

1   #在/tmp目錄下找到所有以'sess'開頭、並且在乙個小時以內修改過的檔案

find ./ -name

'*.zip' -size 546k      

#在當前目錄下找到所有546kb的zip壓縮包檔案

find /tmp/ -user

'galeki'               #在/tmp目錄下找到所有所有者為galeki的檔案

另外,還可以用"+"、"-"來進一步修飾時間和大小的條件:

find src/ -mtime

+2#找出src目錄下上一次修改時間在2天以前的檔案

find download/ -size +50m

#在download目錄下找出大於50m的檔案

光找出檔案還不夠,我們還要對找出的檔案進行處理才有意義,一般來講可以把find的查詢結果傳遞給其他的命令做進一步處理。find本身也提供了許多處理動作的選項。

常用的處理動作:

引數意義-print

列印出找出檔案的完整位址,乙個檔案一行

-delete

刪除找出的檔案

-exec command {} \;

對每乙個找到的檔案執行command命令,

並用檔案替換"{}",「\;」是固定的結束符。

find /tmp/ -ctime

+7 -delete           

#刪除/tmp目錄下一周以前建立的檔案

find ./ -name

'*.unk' -

exec file

\;  

#找出當前資料夾下字尾是unk的檔案,並用file命令顯示每個檔案的檔案型別

0給主人留下些什麼吧!~~

Linux下的find用法

想一下我們為什麼要熟悉find命令呢?whereis和locate都可以用來查詢,但是這兩個是通過資料庫來查因為沒有實際查詢硬碟所以相當快速,但是也會有其他問題 1 whereis命令只能用於程式名的搜尋,而且只搜尋二進位制檔案,man說明檔案和源 檔案 省略引數時返回所有資訊 2 whereis查...

linux下的find指令

在linux下我們可以用到三個命令來查詢檔案,通常我們都是先使用whereis或者是locate來檢查,如果真的找不到了我們才以find來找。為什麼呢?因為whereis和locate是利用資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟...

Linux下的find指令

在linux 下我們可以用到三個命令來查詢檔案,通常使用whereis或者是locate來檢查,如果真的找不到了我們就以find來找。因為whereis和locate是利用 資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟比較老舊的話,就...