1. 程式人生 > >Linux命令每日學之find

Linux命令每日學之find

find命令是在指定目錄下查詢檔案或者子目錄。區別與grep的是 grep 是在檔案中查詢字元。如果不指定引數,find預設查詢當前目錄下檔案和子目錄。

命令格式


find [引數] [目錄] [檔名]

命令功能

在指定目錄查詢滿足條件的檔案或者子目錄。

命令引數

-name <檔名稱>: 查詢名稱為指定名稱的檔案。

-iname <檔名稱>: 查詢名稱為指定名稱的檔案(忽略大小寫)。

-Btime <時間(天為單位)>: 查詢匹配字串的行數

-Bmin <時間(分鐘為單位)>: 只輸出匹配的部分

-amin <時間(小時為單位)>: 最近一次存取(access)時間與查詢時間在給定時間範圍之內

-cmin <時間(小時為單位)>: 最近一次改變(change)時間與查詢時間在給定時間範圍之內

-delete : 刪除查詢到的檔案或者檔案目錄

-exec <命令> : 查詢到的檔案或者檔案目錄後執行指定的操作

-regex <模式串> : 查詢滿足指定模式串的檔案或者資料夾

命令例項

測試的檔名:
test

1. -name

tango @ TangodeMacBook-Pro in ~/Desktop on
git:master x [19:42:23] $ find . -name Postman.app ./Postman.app

2.-exec 查詢指定檔案並複製。

# tango @ TangodeMacBook-Pro in ~/Desktop/cc on git:master x [20:01:29] 
$ ls
test
# tango @ TangodeMacBook-Pro in ~/Desktop/cc on git:master x [20:04:57] C:1
$ find test -exec cp {} ./test2 \;

# tango @ TangodeMacBook-Pro in ~/Desktop/cc on git:master x [20:07:04] 
$ ls test test2 # tango @ TangodeMacBook-Pro in ~/Desktop/cc on git:master x [20:07:10] $

3.-size

根據檔案大小進行匹配 find . -type f -size 檔案大小單元

4.-atime

搜尋超過七天內被訪問過的所有檔案 find . -type f -atime +7

5.-name

在/home目錄下查詢以.txt結尾的檔名 find /home -name "*.txt"

6.-regex

基於正則表示式匹配檔案路徑 find . -regex ".*\(\.txt\|\.pdf\)$"