find 命令
-
功能
用於查找文件目錄 -
用法
find (參數)(選項)即 find [指定查找目錄] [查找規則] [查找完後執行的action]
默認查找當前目錄及其子目錄的所有文件,而位於參數之前的字符串都會被認定爲查找的目錄名。
-
參數
查找的目錄,可以同時指定幾個目錄 -
選項
- 根據名字查找
-name
-iname 不區分大小寫查找
通配符說明:* 用於匹配任意字符;? 用於匹配任意單個字符;[] 用於匹配括號內的任意一個字符
- 根據所屬用戶或者羣組
-user
-group
-uid 查找指定uid
-gid 查找指定gid
- 根據多個條件
-a 條件與
-o 條件或
-not 條件取反
- 根據文件的時間戳(用stat [文件] 查看文件信息)
-atime(天),-amin(分鐘) 文件最後一次被訪問時間。 如:-atime 7 恰好在七天前訪問的文件
-mtime(天),-mmin(分鐘) 文件最後一次被修改時間。 如: -mtime -7 在七天內被修改的文件
-ctime(天),-cmin(分鐘) 文件數據元(例如權限等)最後一次修改時間。 如:-ctime +7 超過七天被修改權限的文件
- 根據文件類型
-type
f // 普通文件
d //目錄文件
l //鏈接文件
b //塊設備文件
c //字符設備文件
p //管道文件
s //socket文件
- 根據文件的大小
-size
b —— 塊(512字節)
c —— 字節
w —— 字(2字節)
k —— 千字節
M —— 兆字節
G —— 吉字節
同樣的‘-’和‘+’表示範圍,如 find -type f -size +10k 搜索文件大小大於10k的
- 根據文件權限
-perm [num]
- 查找後的action
# -print //默認情況下的動作
#-delete //搜索匹配文件並刪除
# -ls //查找到後用ls 顯示出來
# -ok [commend] //查找後執行命令的時候詢問用戶是否要執行
# -exec [commend] //查找後執行命令的時候不詢問用戶,直接執行.當 find 結果爲true時, 執行後面的命令 ,{} 表示搜索得到的結果
find .-type f -user root -exec chown tom {} \; 將root所屬的文件變更其所有權爲用戶 tom
find . -name '*.txt' -ok rm {} \; 刪除當前目錄及其子目錄下的txt文件
- 實例
- 查找多個目錄
asnphtl@CIGWKL7251BVV /$ find /joson/ /home/ASNPHTL/ -name 'test*'
/joson/test.txt
/joson/test1
/home/ASNPHTL/test
- stat 命令
asnphtl@CIGWKL7251BVV /joson$ stat /joson/test.txt
File: /joson/test.txt
Size: 16 Blocks: 1 IO Block: 65536 regular file
Device: fac6d503h/4207334659d Inode: 22236523160400909 Links: 1
Access: (0755/-rwxr-xr-x) Uid: (1446641/ asnphtl) Gid: (1049089/Domain Users)
Access: 2019-05-28 09:10:38.417681600 +0800
Modify: 2019-05-28 10:43:28.206121200 +0800 #文件內容修改時間
Change: 2019-05-28 10:44:06.203121200 +0800 #文件內容或者權限修改時間
Birth: 2019-05-28 09:10:38.417681600 +0800