Linux 命令 find 搜尋檔案

2022-03-21 23:02:33 字數 4244 閱讀 3843

find 命令可以依據檔案的各種屬性在既定的目錄(及其子目錄)裡搜尋檔案。

find [-h] [-l] [-p] [-d debugopts] [-olevel] [path...] [expression]

-cmin n

匹配 n 分鐘前改變狀態(內容或屬性)的檔案或目錄。如果不到 n 分鐘,就用 -n,如果超過 n 分鐘,就用 +n。

-cnewer file

匹配內容或屬性的修改時間比檔案 file 更晚的檔案或目錄。

-ctime n

匹配系統中 n*24 小時前檔案狀態改變(內容、屬性、訪問許可權等)的檔案或目錄。

-empty

匹配空檔案及空目錄。

-group name

匹配屬於 name 組的檔案或目錄,name 可以描述為組名或改組的 id。

-iname pattern

與 -name 選項功能類似只是不區分大小寫。

-inum n

匹配索引節點是 n 的檔案。該 test 選項有助於查詢某個特定索引節點上的所有硬鏈結。

-mmin n

匹配 n 分鐘前內容被修改的檔案或目錄。

-mtime n

匹配 n*24 小時前只有內容被更改的檔案或目錄。

-name pattern

匹配有特定萬用字元模式的檔案或目錄

-newer file

匹配內容的修改時間比 file 檔案更近的檔案或目錄。這在編寫 shell 指令碼進行檔案備份的時候非常有用。每次建立備份時,更新某個檔案(比如日誌),然後用 find + 此引數選項來確定上一次更新後哪些檔案改變了。

-nouser

匹配不屬於有效使用者的檔案或目錄。該 test 選項可以用來查詢那些屬於已刪除賬號的檔案,也可以用來檢測攻擊者的活動。

-nogroup

匹配不屬於有效組的檔案或目錄

-perm mode

尋找訪問許可權與既定模式匹配的檔案或目錄。既定模式可以以八進位制或符合的形式表示。

-samefile name

與 -inum 選項類似。匹配與 file 檔案用索引編號相同的的檔案。

-size n

匹配大小為 n 的檔案。+n 表示大於 n,-n 表示小於 n。find 支援的計量單位有 b(表示 512 位元組的塊,預設單位)、c(位元組)、w(兩個位元組的字)、k(kb)、m(mb)和 g(gb)。

-type c

匹配指定型別的檔案。find 支援的檔案型別有 b(塊裝置檔案)、c(字元裝置檔案)、d(目錄)、f(普通檔案)和 l(符號鏈結)。

-user name

匹配屬於 name 使用者的檔案或目錄。name 可以描述為使用者名稱或該使用者的 id。

-delete

刪除匹配檔案。

-ls

對匹配檔案執行 ls 操作,以標準格式輸出其檔名及所要求的其他資訊。

-print

將匹配的檔案的全部路徑以標準形式輸出。當沒有指定任何具體操作是,該操作是預設操作。

-quit

一旦匹配成功便退出。

-exec command {} ;

自定義操作,command 表示要執行的操作命令名,{} 花括號表示當前路徑,而分號作為必需的分隔符表示命令結束。

-depth

引導 find 程式處理目錄前先處理目錄內檔案。當指定 -delete 操作時,該引數選項會自動呼叫。

-maxdepth levels

當執行測試條件行為時,設定 find 程式陷入目錄數的最大級別數。

-mindepth levels

在應用測試條件和行為時,設定 find 程式陷入目錄數的最小級別數。

-mount

引導 find 不去遍歷掛載在其他檔案系統上的目錄。

-noleaf

指導 find 程式不要基於 「正在搜尋類 unix 檔案系統」 的假設來優化它的搜尋。當掃瞄 dos/windows 檔案系統和 cd 時,會用到該選項。

a) 列出目錄 ~/redis/redis-3.0.4/utils/ 所有的檔案列表清單。

[huey@huey-k42je ~]$find ~/redis/redis-3.0.4/utils//home/huey/redis/redis-3.0.4/utils/

/home/huey/redis/redis-3.0.4/utils/cluster_fail_time.tcl

/home/huey/redis/redis-3.0.4/utils/redis_init_script

/home/huey/redis/redis-3.0.4/utils/mkrelease.sh

...

b) 查詢目錄 ~/redis/redis-3.0.4/utils/ 的所有目錄。

[huey@huey-k42je ~]$find ~/redis/redis-3.0.4/utils/ -type d/home/huey/redis/redis-3.0.4/utils/

/home/huey/redis/redis-3.0.4/utils/hyperloglog

/home/huey/redis/redis-3.0.4/utils/create-cluster

/home/huey/redis/redis-3.0.4/utils/lru

c) 查詢目錄 ~/redis/redis-3.0.4/utils/ 下所有以 .sh 為字尾且大於 1kb 的普通檔案。

[huey@huey-k42je ~]$find ~/redis/redis-3.0.4/utils/ -type f -name "*.sh" -size +1k/home/huey/redis/redis-3.0.4/utils/install_server.sh

d) 查詢目錄 ~/redis/redis-3.0.4/src/ 下模式為 0775 或 0755 的檔案(注意命令列的空格)。

[huey@huey-k42je ~]$find ~/redis/redis-3.0.4/src/ \( -type f -perm 0775 \) -or \( -type f -perm 0755 \)/home/huey/redis/redis-3.0.4/src/redis-benchmark

/home/huey/redis/redis-3.0.4/src/mkreleasehdr.sh

/home/huey/redis/redis-3.0.4/src/redis-check-dump

/home/huey/redis/redis-3.0.4/src/redis-check-aof

/home/huey/redis/redis-3.0.4/src/redis-server

/home/huey/redis/redis-3.0.4/src/redis-sentinel

/home/huey/redis/redis-3.0.4/src/redis-trib.rb

/home/huey/redis/redis-3.0.4/src/redis-cli

e) 對匹配檔案執行 ls 操作。

[huey@huey-k42je ~]$find ~/redis/redis-3.0.4/src/ -type f -perm 0755 -ls919417 6316 -rwxr-xr-x   1 huey      huey       6466357 sep 26 13:20 /home/huey/redis/redis-3.0.4/src/redis-sentinel

f) 刪除匹配檔案。

[huey@huey-k42je ~]$find ~/redis/redis-3.0.4/src/ -type f -perm 0755 -delete

g) 對匹配檔案自定義操作,將匹配的檔案拷貝至指定的目錄。

[huey@huey-k42je ~]$ mkdir ~/tmpdir

[huey@huey-k42je ~]$ find ~/redis/redis-3.0.4/src/ -type f -perm 0755 -exec cp '{}' ~/tmpdir ';'

[huey@huey-k42je ~]$ ll ~/tmpdir/

total 6316

-rwxr-xr-x 1 huey huey 6466357 oct 16 10:04 redis-sentinel

linux 檔案搜尋命令 find

命令名稱 find 命令所在路徑 bin find 執行許可權 所有使用者 語法 find 搜尋範圍 匹配條件 功能描述 檔案搜尋 乙個資料塊 512位元組 0.5k 1.find etc name init 在目錄 etc 中查詢檔案init iname 不區分大小寫 2.find size 20...

Linux命令 檔案搜尋命令 find

選項 name表示按檔名稱查詢 find etc name init 搜尋etc目錄下面的檔名為init的所有檔案 精確搜尋 find etc name init 搜尋etc目錄下面的檔名包含init的所有檔案 模糊搜尋 init init?表示任意字元,表示乙個字元 檔名區分大小寫 touch e...

Linux 檔案查詢搜尋命令find

檔名查詢 當前目錄 find name aaa 絕對路徑 find etc name aaa 區分大小寫 find name aaa 不區分大小寫 find iname aaa 符號 模糊查詢 單個字元 萬用字元 檔案大小查詢 100m檔案查詢 find size 204800 說明 linux系統...