[命令]find

find 命令

  1. 功能
    用於查找文件目錄

  2. 用法
    find (參數)(選項)即 find [指定查找目錄] [查找規則] [查找完後執行的action]

默認查找當前目錄及其子目錄的所有文件,而位於參數之前的字符串都會被認定爲查找的目錄名。

  1. 參數
    查找的目錄,可以同時指定幾個目錄

  2. 選項

  • 根據名字查找
-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]
  1. 查找後的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文件
  1. 實例
  • 查找多個目錄
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章