日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

小议 find

發布時間:2025/3/8 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小议 find 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?說find之前我們先說兩個概念:文件查找;文本過濾。這是兩個不同的概念,所使用的命令也是不一樣的。

? ? 文件查找:查找目錄中的文件

? ? 文本過濾:查找文本中的行

? ? 文本過濾的命令有:grep 、fgrep 、egrep 等?

? ? ? ? ?格式為:grep [選項] ?[查找模式] ?[文件名1,文件名2……]

? ?文件查找的命令有:find 、locate等

? ? ? ? ? 格式為:find [查找目錄] ?[查找條件] ?[動作]

現在大家對這兩個命令有個大概的印象了吧,今天我們主要總結的是文件查找的命令,主要解析find。

? ?文件查找:

? ? ? locate :

? ? ? ?特點 :模糊查找 ? 非實時查找 速度快 ? 功能有限

? ? ? ? 格式:#locate KEYWORD ?直接跟文件名,也可以說是關鍵字。

? ? ? ? 過程:在整個系統查找,但速度很快,因為雖在整個系統查找,但事實上是在datebase 數據庫( #updatedb ?創建 查找的數據庫)上查找,也就是非實時查找。

? ? ? find:

? ? ? 特點:精確,實時查找,而且可指定查找路徑,速度慢

? ? ??格式為:find [查找目錄] ?[查找條件] ?[動作]

?[查找目錄]:可以省略,省略表示當前目錄及當前目錄下的所有子目錄。

? ? ? ? ?[查找條件]:也可以省略,表示指定目錄及子目錄下的所有文件

? ? ? ? ?[動作]:也可以省略,表示print,顯示出來。

? ??[查找目錄]:

? ? ? ? ? ? ? 直接指定目錄就可以,例如:/etc

? ??[查找條件]:?

  • ?-name?“FILENAME”???根據文件名查找?精確查找?區分大小寫??
  • ?-iname?"FILENAME"?不區分大小寫???
  • ?
  • ?-regex?"PATTERN"正則表達式??
  • ?-iregex?"PATTERN"?不區分大小寫?
  • ?
  • -user?USERNAME???查找屬于某個用戶的?
  • ?-group?GROUPNAME?根據屬組?查找
  • ??
  • ?-uid?UID??
  • ?-gid??GID???把用戶刪除之后?用戶原來創建的文件的屬主?為原來用戶的UID?
  • ?
  • ?-nouser??沒有屬主的文件 應該經常查找這類文件?給他一個屬主??
  • ?-nogroup?沒有屬組的文件
  • ?
  • ?-type???(f,d,l,b,c,p,s)?
  • ?
  • ?-size?[+/-]?#?{k|M|G}?默認單位是字節?byte?
  • ???????-size?+2M??找大于2M的文件?
  • ???????-size?-2M??找小于2M的文件??
  • ???????-size?2M??(大于1k到兩k的都顯示?)?????
  • ???ls?-l?`?find?/etc??-size?2k?`??命令引用??不可以通過管道?
  • ?
  • 單位是day??????????
  • -atime?[+/-]#??訪問過的文件??
  • -mtime????修改的文件?
  • -ctime????改變??
  • ?????-atime?+3??三天前訪問的?
  • ?????-atime?-3??最近三天訪問的?
  • ? -atime 3 往前數第三天訪問過的文件
  • ?單位是?minute?
  • -amin?[+/-]#?
  • -mmin?[+/-]#?
  • -cmin?[+/-]#?
  • ?
  • -perm??根據權限來查找??
  • ???????mode???640?精確查找??
  • ???????/mode?/640???任何一位匹配都可以?/440?只要屬主或屬組有讀權限的都可以滿足。?
  • ?
  • ???????-mode???-640?所有都帶匹配?666也可以匹配?是包含的關系??
  • ??????????????-440只要屬主屬組都有讀權限?其他都不管????????????????????
  • -expty? -expty? 尋找文件大小為0?Byte的文件,或目錄下沒有任何子目??????錄或文件的空目錄。?
  • ?-fls?<列表文件>?此參數的效果和指定的“ls”參數類似,但會把結果保存為指定的列表文件??
  • 查找條件也支持多條件查找,條件間的邏輯關系 :

    ?并: -a ?默認沒寫 就是并關系。

    ?或: -o

    ?非:-not ,!

    ?

    ?

    [動作]:? ? ?

  • ?-print?默認是顯示??
  • -ls?顯示詳細信息??
  • ?????
  • -ok?COMMAND?{}?\;????????固定格式??提醒用戶確認?
  • -exec?COMMAND?{}?\;?同上???直接執行命令???{}?表示占位符
  • xargs COMMAND 功能更強大 不需要占位符 ?
  • #find | xargs COMMAND ?find查找到的結果通過管道送過來
  • example:

    ? ? ? ?下面通過一些例子,講解每一個選項怎么用,可以達到什么效果。

    查找/tmp目錄下文件名為“passwd”或者屬主是“root”的文件

    ? ? #find ?/tmp ?-name "passwd" -o ?-user root ?或關系

    查找/tmp目錄下文件名為“passwd”并且屬主是“root”的文件

    ? ? #find ?/tmp ?-name "passwd" -a -user root ?并關系

    查找/tmp目錄下文件名不是“passwd”或者屬主不是“root”的文件

    ? ? #find ?/tmp ?-not -name "passwd" -o -not -user root

    ? ? #find ?/tmp ?-not \(-name "passwd" -a -user root \)

    兩種寫法都可以達到目的。

    小插曲 :摩根定律,感興趣的朋友可以自己查看。有助于我們理解

    ?!a? ∪??!b ?=! (a? ∩??b)

    ?!a? ∩??!b = ! (a? ∪??b)

    查找當前目錄下沒有屬主和屬組的文件,并把屬主屬組改為root

    ? ? ?#find ./ -nouser -a -nogroup -exec chown root:root {}\;

    查找當前目錄下其他用戶有寫權限的文件,把文件名后面加上.old

    ? ? ? #find ./ -perm -002 -exec mv {} {}.old \; {}表示占位符 前面找到誰 就把{}替換成誰

    查找/tmp目錄下 屬主是root,文件類型視普通文件的文件,先顯示再刪除

    ? ? ? ?#find /tmp -user root -type f -print (顯示) | xargs rm -f ?刪除

    下面有幾道小練習題,大家可以看一下,用上面講解的都可以完成,同時也可以檢測一下我是否講解清楚,讓大家看明白了,有什么建議或意見直接留言。

    1、查找/var目錄下屬主為root并且屬組為mail的所有文件;

    2、查找/usr目錄下不屬于root,bin,或student的文件;

    3、查找/etc目錄下最近一周內內容修改過且不屬于root及student用戶的文件;

    4、查找當前系統上沒有屬主或屬組且最近1天內曾被訪問過的文件,并將其屬主屬組均修改為root;

    5、查找/etc目錄下大于1M的文件,并將其文件名寫入/tmp/etc.largefiles文件中;

    6、查找/etc目錄下所有用戶都沒有寫權限的文件,顯示出其詳細信息;

    ?

    ?

    轉載于:https://blog.51cto.com/5122542/905990

    總結

    以上是生活随笔為你收集整理的小议 find的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。