-
根據檔案名或者正規表達式進行搜尋
選項
選項- name
,忽略大小寫- iname
比對多個條件中的一個,可以使用or條件[root@vm2 find-test]# find /opt/find-test -name "new.sh" /opt/find-test/new.sh /opt/find-test/n/new.sh # 忽略大小寫 [root@vm2 find-test]# find /opt/find-test -iname "new.sh" /opt/find-test/new.sh /opt/find-test/n/new.sh /opt/find-test/n/new.SH /opt/find-test/new.SH
[root@vm2 find-test]# find /opt/find-test \( -name "new.sh" -o -name "new.SH" \) /opt/find-test/new.sh /opt/find-test/n/new.sh /opt/find-test/n/new.SH /opt/find-test/new.SH
,可以使用通配符比對檔案路徑-path
-ipath
[root@vm2 find-test]# find /opt/find-test -path "*new.sh" /opt/find-test/new.sh /opt/find-test/n/new.sh # 忽略大小寫 [root@vm2 find-test]# find /opt/find-test -ipath "*new.sh" /opt/find-test/new.sh /opt/find-test/n/new.sh /opt/find-test/n/new.SH /opt/find-test/new.SH
,正則比對-regex
-iregex
[root@vm2 find-test]# find . -regex ".*\(\.py\|\.sh\)$" ./new.sh ./new.py ./n/old.sh ./n/new.sh ./n/new.py # 忽略大小寫 [root@vm2 find-test]# find . -iregex ".*\(\.py\|\.sh\)$" ./new.sh ./new.py ./n/old.sh ./n/new.sh ./n/new.py ./n/new.PY ./n/new.SH ./new.PY ./new.SH
- 否定參數
表示否定!
[root@vm2 find-test]# find . ! -name new.txt
- 基于目錄深度的搜尋
指定最大深度-maxdepth
指定最小深度-mindepth
# 預設查找 [root@vm2 find-test]# find . -name new.sh ./new.sh ./n/new.sh ./n/n2/new.sh # 最大深度 [root@vm2 find-test]# find . -maxdepth 1 -name new.sh ./new.sh [root@vm2 find-test]# find . -maxdepth 2 -name new.sh ./new.sh ./n/new.sh [root@vm2 find-test]# find . -maxdepth 3 -name new.sh ./new.sh ./n/new.sh ./n/n2/new.sh # 最小深度 [root@vm2 find-test]# find . -mindepth 1 -name new.sh ./new.sh ./n/new.sh ./n/n2/new.sh [root@vm2 find-test]# find . -mindepth 2 -name new.sh ./n/new.sh ./n/n2/new.sh [root@vm2 find-test]# find . -mindepth 3 -name new.sh ./n/n2/new.sh
- 根據檔案類型搜尋
,對檔案搜尋進行過濾-type
# d:目錄 [root@vm2 find-test]# find . -type d . ./n ./n/n2
f:普通檔案
l:符号連結
d:目錄
c:字元裝置
b:塊裝置
s:套接字
p:FIFP
-
根據檔案時間進行搜尋
通路時間
-atime
:使用者最近一次通路檔案的時間;
修改時間
-mtime
:檔案内容最後一次被修改的時間;
變化時間
-ctime
:檔案中繼資料(如權限或所有者)最後一次被改變的時間
(以上機關為:天)
可作為find的時間選項。可以用整數值指定,機關是天。還可以帶-/+:-表示小于,+表示大于-atime/-mtime/-ctime
# 列印出最近7天内被通路過的所有檔案 [root@vm2 opt]# find . -maxdepth 1 -type f -atime -7 ./install_mysql.sh ./conn.sh ./mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz ./start.sh # 列印出恰好2天前被通路過的所有檔案 [root@vm2 opt]# find . -maxdepth 1 -type f -atime 2 ./install_mysql.sh ./mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz # 列印出通路時間超過7天的所有檔案 [root@vm2 opt]# find . -maxdepth 1 -type f -atime +7 ./clear.sh ./install.sh ./kill-mongo.sh
-amin
-mmin
(以上機關為:分鐘)-cmin
參數# 通路時間超過7分鐘的所有檔案 [root@vm2 find-test]# find . -maxdepth 1 -type f -amin +7 ./n.txt ./new.txt ./new.sh ./new.py ./new.PY ./new.SH
,指定一個用于比較時間戳的參考檔案,然後找到比參考檔案更新(更近的修改時間)的所有檔案-newer
[root@vm2 opt]# find . -maxdepth 1 -type f -newer conn.sh ./install_mysql.sh [root@vm2 opt]# stat conn.sh File: `conn.sh' Size: 71 Blocks: 8 IO Block: 4096 regular file Device: 802h/2050d Inode: 1053057 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-05-27 17:57:16.852377034 +0800 Modify: 2016-04-29 05:45:25.880432420 +0800 Change: 2016-04-29 05:45:25.884432437 +0800 [root@vm2 opt]# stat install_mysql.sh File: `install_mysql.sh' Size: 3265 Blocks: 8 IO Block: 4096 regular file Device: 802h/2050d Inode: 1053056 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-05-25 17:09:46.046655516 +0800 Modify: 2016-05-25 17:09:40.577657518 +0800 Change: 2016-05-25 17:09:40.587656924 +0800
- 基于檔案大小的搜尋
# 大于2KB的檔案 [root@vm2 opt]# find . -maxdepth 1 -type f -size +2k ./install_mysql.sh ./mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz # 小于2KB的檔案 [root@vm2 opt]# find . -maxdepth 1 -type f -size -2k ./clear.sh ./conn.sh ./install.sh ./kill-mongo.sh ./start.sh
b:塊(512位元組)
c:位元組
w:字(2位元組)
k:1024位元組
M:1024K位元組
G:1024M位元組
- 删除比對的檔案
,删除find比對到的檔案-delete
[root@vm2 find-test]# ls n new.py new.PY new.sh new.SH new.txt n.txt [root@vm2 find-test]# find . -maxdepth 1 -name new.sh ./new.sh [root@vm2 find-test]# find . -maxdepth 1 -type f -name new.sh -delete [root@vm2 find-test]# find . -maxdepth 1 -name new.sh
- 基于檔案權限和所有權限比對
,指定find比對的權限-perm
# 找出權限為700的檔案 [root@vm2 find-test]# find . -maxdepth 1 -type f -perm 700 ./n.txt # 找出權限為644的檔案 [root@vm2 find-test]# find . -maxdepth 1 -type f -perm 644 ./new.txt ./new.py ./new.PY ./new.SH # 找出權限不是644的檔案 [root@vm2 find-test]# find . -maxdepth 1 -type f ! -perm 644 ./n.txt
-
[root@vm2 find-test]# find . -maxdepth 1 -type f -user mysql ./new.txt [root@vm2 find-test]# find . -maxdepth 1 -type f -user mysql -exec chown zabbix. {} \; # find指令找到檔案new.txt的所有者為mysql,那麼find會執行:chown zabbix. {},然後被解析為:chown zabbix. new.txt [root@vm2 find-test]# ll new.txt -rw-r--r-- 1 zabbix zabbix 0 May 27 17:14 new.txt