一丶概述
1.find的簡介及優缺點
find命令主要用於文件搜索,它的功能非常強大,可以根據不同的標準搜索任何文件,可以在任何位置進行檢索。
優點:
• 精確查找
• 實時查找
缺點
•查找速度略慢
• 可能只搜索此用戶具備讀取和執行權限的目錄
2.find語法
find [OPTION]... [查找路徑] [查找條件] [處理動作]
查找路徑:指定具體目標路徑;默認爲當前目錄
查找條件:指定的查找標準,可以文件名、大小、類型、
權限等標準進行;默認爲找出指定路徑下的所有文件
處理動作:對符合條件的文件做操作,默認輸出至屏幕
二丶條件及處理
1.條件
1.1根據文件名和inode查找:
-name "文件名稱":支持使用glob
[root@centos7 etc]# find /etc/ -name pa**wd
/etc/pam.d/passwd
/etc/passwd
-iname "文件名稱":不區分字母大小寫
[root@centos7 etc]# find /etc/ -iname pAs?wd
/etc/pam.d/passwd
/etc/passwd
-inum n 按inode號查找
[root@centos7 etc]# find /etc/ -inum 34663493
/etc/passwd
links n 鏈接數爲n的文件
[root@centos7 etc]# find -links 2
1.2根據屬主、屬組查找:
-user USERNAME:查找屬主爲指定用戶(UID)的文件
[root@centos7 app]# find /app/ -user root
/app/
/app/jiaoben
/app/jiaoben/ksjiaoben
-group GRPNAME: 查找屬組爲指定組(GID)的文件
[root@centos7 app]# find /app/ -group root
/app/
/app/jiaoben
/app/233.sh
/app/passwd
-uid UserID:查找屬主爲指定的UID號的文件
[root@centos7 app]# find /app/ -uid 1000
-gid GroupID:查找屬組爲指定的GID號的文件
[root@centos7 app]# find /app/ -gid 1000
-nouser:查找沒有屬主的文件
[root@centos7 app]# find /app/ -nouser
-nogroup:查找沒有屬組的文件
[root@centos7 app]# find /app/ -nogroup
1.3根據文件類型查找:
-type TYPE:
f: 普通文件
d: 目錄文件
l: 符號鏈接文件
s: 套接字文件
b: 塊設備文件
c: 字符設備文件
p: 管道文件
find /dev/ -type c
1.4根據時間戳:
1.4.1以“天”爲單位:
-atime [+|-]#,
#: [#,#+1)
+#: [#+1,∞]
-#: [0,#)
(注: [ 爲包括此數字,)爲不包括此數字)
-mtime
-ctime
[root@centos7 app]# find /app/ -mtime 7
(此爲顯示從7天到第8天內的所有文件目錄【包含第七天,不包括第八天】)
1.4.2以“分鐘”爲單位:
(基本同上)
-amin -mmin -cmin
5.根據權限查找:
MODE: 精確權限匹配
/MODE:任何一類(u,g,o)對象的權限中只要能一位匹配
即可,或關係,+ 從centos7開始淘汰
-MODE:每一類對象都必須同時擁有指定權限,與關係
0 表示不關注
• find -perm 755 會匹配權限模式恰好是755的文件
• 只要當任意人有寫權限時,find -perm +222就會匹配
• 只有當每個人都有寫權限時,find -perm -222纔會匹配
• 只有當其它人(other)有寫權限時,find -perm -002才
會匹配
2.處理動作
-print:默認的處理動作,顯示至屏幕
-ls:類似於對查找到的文件執行“ls -l”命令
[root@centos7 app]# find /app/ -name passwd -ls
delete:刪除查找到的文件
[root@centos7 app]# find /app/ -name passwd -delete
fls file:查找到的所有文件的長格式信息保存至指定文件中
[root@centos7 app]# find /app/ -name passwd > passwdfile
ok -exec ok交互式,exec直接運行
find -name ".tmp" -ok rm -f {} \;
find -type f -name ".sh" -exec chmod a+x {} \;
find -name "*.conf" -exec cp -i {} {}.bak \;