歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

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

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

來看一個簡單的例子:

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

1.時間:

參數 意義
-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)的文件

3.所有者:
參數 意義
-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命令顯示每個文件的文件類型

Copyright © Linux教程網 All Rights Reserved