linux中的find命令

2021-09-24 18:48:49 字數 4734 閱讀 3177

find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。

選項說明

-amin《分鐘》

查詢在指定時間曾被訪問過的檔案或目錄,單位以分鐘計算;

-anewer《參考檔案或目錄》

查詢其訪問時間較指定檔案或目錄的訪問時間更接近現在的檔案或目錄;

-atime<24小時數》

查詢在指定時間曾被訪問過的檔案或目錄,單位以24小時計算;

-cmin《分鐘》

查詢在指定時間之時被更改過的檔案或目錄;

-cnewer《參考檔案或目錄》

查詢其更改時間較指定檔案或目錄的更改時間更接近現在的檔案或目錄;

-ctime<24小時數》

查詢在指定時間之時被更改的檔案或目錄,單位以24小時計算;

-daystart

從本日開始計算時間;

-depth

從指定目錄下最深層的子目錄開始查詢;

-expty

尋找檔案大小為0 byte的檔案,或目錄下沒有任何子目錄或檔案的空目錄;

-exec《執行指令》

假設find指令的回傳值為true,就執行該指令;

-false

將find指令的回傳值皆設為false;

-fls《列表檔案》

此引數的效果和指定「-ls」引數類似,但會把結果儲存為指定的列表檔案;

-follow

排除符號連線;

-fprint《列表檔案》

此引數的效果和指定「-print」引數類似,但會把結果儲存成指定的列表檔案;

-fprint0《列表檔案》

此引數的效果和指定「-print0」引數類似,但會把結果儲存成指定的列表檔案;

-fprintf《列表檔案》《輸出格式》

此引數的效果和指定「-printf」引數類似,但會把結果儲存成指定的列表檔案;

-fstype《檔案系統型別》

只尋找該檔案系統型別下的檔案或目錄

-gid《群組識別碼》

查詢符合指定之群組識別碼的檔案或目錄;

-group《群組名稱》

查詢符合指定之群組名稱的檔案或目錄;

-help或- - help:

-ilname《範本樣式》

此引數的效果和指定「-lname」引數類似,但忽略字元大小寫的差別;

-iname《範本樣式》

此引數的效果和指定「-name」引數類似,但忽略字元大小寫的差別;

-inum

查詢符合指定的inode編號的檔案或目錄;

-ipath《範本樣式》

:此引數的效果和指定「-path」引數類似,但忽略字元大小寫的差別;

-iregex《範本樣式》

此引數的效果和指定「-regexe」引數類似,但忽略字元大小寫的差別;

-links《連線數目》

查詢符合指定的硬連線數目的檔案或目錄;

-iname《範本樣式》

指定字串作為尋找符號連線的範本樣式;

-maxdepth《目錄層級》

設定最大目錄層級;

-mindepth《目錄層級》

設定最小目錄層級;

-mmin《分鐘》

查詢在指定時間曾被更改過的檔案或目錄,單位以分鐘計算;

-mount

此引數的效果和指定「-xdev」相同;

-mtime<24小時數》

查詢在指定時間曾被更改過的檔案或目錄,單位以24小時計算;

-name《範本樣式》

指定字串作為尋找檔案或目錄的範本樣式;

-newer《參考檔案或目錄》

查詢其更改時間較指定檔案或目錄的更改時間更接近現在的檔案或目錄;

-nogroup

找出不屬於本地主機群組識別碼的檔案或目錄;

-noleaf

不去考慮目錄至少需擁有兩個硬連線存在;

-nouser

找出不屬於本地主機使用者識別碼的檔案或目錄;

-ok《執行指令》

此引數的效果和指定「-exec」類似,但在執行指令之前會先詢問使用者,若回答「y」或「y」,則放棄執行命令;

-path《範本樣式》

指定字串作為尋找目錄的範本樣式;

-perm《許可權數值》

查詢符合指定的許可權數值的檔案或目錄;

-print

假設find指令的回傳值為ture,就將檔案或目錄名稱列出到標準輸出。格式為每列乙個名稱,每個名稱前皆有「./」字串;

-print0

假設find指令的回傳值為ture,就將檔案或目錄名稱列出到標準輸出。格式為全部的名稱皆在同一行;

-printf《輸出格式》

假設find指令的回傳值為ture,就將檔案或目錄名稱列出到標準輸出。格式可以自行指定;

-prune

不尋找字串作為尋找檔案或目錄的範本樣式;

-regex《範本樣式》

指定字串作為尋找檔案或目錄的範本樣式;

-size《檔案大小》

查詢符合指定的檔案大小的檔案;

-true

將find指令的回傳值皆設為true;

-typ《檔案型別》

只尋找符合指定的檔案型別的檔案;

-uid《使用者識別碼》

查詢符合指定的使用者識別碼的檔案或目錄;

-used《日數》

查詢檔案或目錄被更改之後在指定時間曾被訪問過的檔案或目錄,單位以日計算;

-user《擁有者名稱》

查詢符和指定的擁有者名稱的檔案或目錄;

-version或——version

顯示版本資訊;

-xdev

將範圍侷限在先行的檔案系統中

-xtype《檔案型別》

此引數的效果和指定「-type」引數類似,差別在於它針對符號連線檢查。

檔案型別

基於檔案型別搜尋

find . -type 型別引數

型別引數列表:

f普通檔案

l符號連線

d目錄

c字元裝置

b塊裝置

s套接字

pfifo

三種時間戳

unix/linux檔案系統每個檔案都有三種時間戳:

訪問時間(-atime/天,-amin/分鐘):使用者最近一次訪問時間。

修改時間(-mtime/天,-mmin/分鐘):檔案最後一次修改時間。

變化時間(-ctime/天,-cmin/分鐘):檔案資料元(例如許可權等)最後一次修改時間。

例子

find / -amin -10 # 查詢在系統中最後10分鐘訪問的檔案

find / -atime -2 # 查詢在系統中最後48小時訪問的檔案

find / -empty # 查詢在系統中為空的檔案或者資料夾

find / -group cat # 查詢在系統中屬於 groupcat的檔案

find / -mmin -5 # 查詢在系統中最後5分鐘裡修改過的檔案

find / -mtime -1 #查詢在系統中最後24小時裡修改過的檔案

find / -nouser #查詢在系統中屬於作廢使用者的檔案

find / -user fred #查詢在系統中屬於fred這個使用者的檔案

【例1】查詢當前目錄下所有.txt檔案並把他們拼接起來寫入到all.txt檔案中

find . -type f -name "*.txt" -exec cat {} \;> all.txt
【例2】找出當前目錄下所有root的檔案,並把所有權更改為使用者tom

find .-type f -user root -exec chown tom {} \;
【例3】將/home/tong/test 目錄下大於100k的檔案轉移到/tmp目錄:

find /home/tong/test -type f -szie +100k |xargs -i mv {} /tmp/
【例4】所有子目錄的數量:

[root@localhost ~]# find /etc/ -type d | wc -l
【例5】查詢home目錄下的所有空檔案

$ find ~ -empty
【例6】查詢10天內未被修改的檔案並刪除命令:

find . -ctime +30 -name "*.*" -exec rm -rf {} \;
【例7】 查1天之內被訪問過的檔案

find /home     -atime -1
【例8】查詢在系統中最後24小時裡修改過的檔案

find     /    -mtime    -1
【例9】 列出檔案或目錄被改動過之後,在2日內被訪問過的檔案或目錄

find    /home    -used    -2
【例10】 從第2層開始查

find    /home    -name tmp.txt    -mindepth    3

linux中的find命令

1.想檢視當前資料夾及子資料夾裡有沒有檔名為 abc 的檔案 find name abc 表示當前目錄 name 表示要根據名稱查詢 2.想檢視當前資料夾及子資料夾裡有沒有 xyz 目錄 find type d name xyz type 表示設定型別,d表示資料夾型別,可以替換為f 普通檔案 l ...

linux中find命令的使用

今天乙個很偶然的機會看到了linux中的find命令,然後我在網上搜尋了一下這方面的內容,為了方便大家學習參考,我就總結一下,一上午的勞動成果,呵呵!首先是find的語法 find 起始目錄 尋找條件 操作 還有種表述方式 find path option exec command 因為find命令...

linux中Find命令的使用

首先是find的語法 find 起始目錄 尋找條件 操作 還有種表述方式 find path option exec command 因為find命令會根據我們給的option,也就是尋找條件從我們給出的目錄開始對其中檔案及其下子目錄中的檔案進行遞迴搜尋,所以我覺的這個地方說是 起始目錄 是非常好的...