查找find命令簡介

   之前都是寫一些關于課后練習題的博客,既練習了課后習題也把博客寫了,舒服!不過這周學的知識需要練習的不多,更多的是需要了解和記憶,所以給大家介紹一個自我覺得挺強大的一個命令,那就是查找find命令。大家都知道計算機的數據茫茫多,要想找到自己想要的級必須加點限制性的條件來縮小一下范圍,或者準確的告訴計算機你想要的是什么。那么怎么來實現呢?那當然是用查找命令來實現的啦,不然干嘛寫這個標題嘞,好下面就讓我們一起開始一趟學習查找find命令輕松開心的旅程,上車。

   首先,介紹find命令之前,我有話要講,一下就告訴你們我所了解的最新的查找命令顯得有些冒進,這里就先介紹下低版本的查找命令locate,在現實生活中,老一輩的人更有經驗和知識,值得我們學習和尊重。但是在計算機領域中,老版本就不止是被新版本

拍在沙灘上了,是拍死在沙灘上了啊,樣樣都比不上。但是,locate別擔心,還是會介紹你的。

###########################################################################################

locate:在文件系統上查找符合條件的文件

參數:【-i】不區分大小寫的搜索 【-n】只列舉前N個匹配項目 【-r】 支持正則表達式進行查找 【舉例:locate -r ‘\.conf$’】

 查詢系統上預建的文件索引數據庫 /var/lib/mlocate/mlocate.db

 依賴于事先構建的索引 索引的構建是在系統較為空閑時自動進行(周期性任務),管理 員手動更新數據庫(updatedb) 索引構建過程需要遍歷整個根文件系統,極消耗資源 

工作特點:

 ? 查找速度快

 ? 模糊查找 

? 非實時查找 【當你新建文件或目錄時用locate命令是查不到的,需要updatedb一下,寫入/var/lib/mlocate/mlocate.db數據庫,這就叫做非實時查找

 ? 搜索的是文件的全路徑,不僅僅是文件名 

? 可能只搜索用戶具備讀取和執行權限的目錄【同下find命令】

#################locate命令介紹到此為止,find由此開始#############################################

find:實時查找工具,通過遍歷指定路徑完成文件查找

 工作特點: 

? 查找速度略慢 

? 精確查找【可以根據路徑,大小權限等等實行精確查找,不像locate命令,只能基于名稱查找,功能單一】

 ? 實時查找【不用更新數據庫,不像locate命令】

 ? 可能只搜索用戶具備讀取和執行權限的目錄【如果目錄里又符合條件的文件,那你要對目錄有rx權限才行,要不你進不去目錄,肯定搜索不出來啊

語法: find [參數]… [查找路徑] [查找條件] [處理動作] 

查找路徑:指定具體目標路徑;默認為當前目錄 

查找條件:指定的查找標準,可以文件名、大小、類型、 權限等標準進行;默認為找出指定路徑下的所有文件 

處理動作:對符合條件的文件做操作,默認輸出至屏幕

【參數】

【-maxdepth level  】最大搜索目錄深度,指定目錄為第1級,有最大就有最小【-mindepth level】

【-name】”文件名稱”:支持使用glob *, ?, [], [^] 

【-iname】 “文件名稱”:不區分字母大小寫 

【-inum】 基于inode查找
【-samefile】 基于相同inode號的查找(查找硬鏈接)
【-links】n 硬鏈接為n的文件
【-regex】 支持正則 默認為(emacs標準)
【-regextype】 egrep -regex 支持egrep同標準的正則 
【-user】 用戶名  基于文件owner的查找
【-group】 組名 基于文件group的查找
【-uid userid】 基于文件uid的查找
【-gid groupid】 基于文件gid的查找
【-nouser】 查找沒有owner的文件
【-nogroup】 查找沒有group的文件
【-type】 基于文件類型的查找        f: 普通文件      d: 目錄文件     l: 符號鏈接文件    s:套接字文件   b: 塊設備文件     c: 字符設備文件      p: 管道文件

####################################################################################

這里插寫一條組合條件命令,可以使find命令更加強壯!                                                                                                            

【與:-a 】        【或:-o】     【 非:-not, ! 】                                                                                                                                                   

德·摩根定律: (非 A) 或 (非 B) = 非(A 且 B) (非 A) 且 (非 B) = 非(A 或 B)   相當于   !A -a !B = !(A -o B)      !A -o !B = !(A -a B)       

####################################################################################

【查找條件】

-size [+|-]# 根據文件大小來查找
常用單位:k, M, G,c(byte)
#: (#-1, #]如:20 表示(19,20]【大于19小于等于20】
-#:[0,#-1]如:-20 表示[0,19]【大于等于0小于等于19】
+#:(#,∞)如:+20 表示(20,∞)【大于20】


-atime [+|-]#, 根據時間來查找 【atime表示天為單位,分鐘min同樣可以使用 amin分鐘為單位】

#: [#,#+1)如:3表示[3,4)【大于3天不到4天】

+#: [#+1,∞]如:3表示[4,+無窮]【大于4天】

-#: [0,#)如:3表示[0,3)【三天前】
-mtime 【Modifytime】

-ctime  【Changetime】

-perm 根據文件目錄權限查找

mode:精確權限匹配【如700,只能是U所有人上的權限為rwx的文件】

+mode[/mode] 任何一類(u,g,o)對象的權限中只要能一位匹配即可,或關系,+ 從centos7開始淘汰關系0 表示不關注

【如:/700表示,U所有人的權限可以是【rwx,r-x,r–,-wx,–x,-w-,rw-反正就是所有人權限上有rwx任意一個權限都行,/表示或的意思,g組位和o其他位不管 如:701,710這些都能匹配】

-mode   每一類對象都必須同時擁有指定權限,與關系0 表示不關注

【如:+700表示,u所有人上的權限必須是rwx,其他位不管,可以是701,710,要比精確權限匹配范圍大】

【處理動作】

【-print】 默認輸入到屏幕
【-delete】 直接刪除所查找到的文件,不詢問。
 【-ls】長列出所查找到的文件
【-fls】 file 將查找到的文件長列出導入到指定文件。   【> file】結合重定向可也以
【-ok】 command \; 對查找到的文件當做下一命令的參數去執行(交互式)
【-exec】command \; 對查找到的文件當做下一命令的參數去執行(非交互式)

練習題:

1、查找/var目錄下屬主為root,且屬組為mail的所有文件
find /var -user root -a -group mail -ls

查找find命令簡介
2、查找/var目錄下不屬于root、lp、gdm的所有文件

find /var -not \( -user root -o -user lp -o -user gdm \) -ls

查找find命令簡介
3、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件
find /var/ -mtime -7 -not -user root -not -user postfix -ls

查找find命令簡介
4 查找/etc目錄下大于1M且類型為普通文件的所有文件
find /etc/ -size +1M -a -type f -ls

查找find命令簡介

5 查找/etc/init.d目錄下,所有用戶都有執行權限,且其它
用戶有寫權限的文件
find /etc/init.d/ -perm -113 -l
查找find命令簡介

原創文章,作者:Ganten,如若轉載,請注明出處:http://www.www58058.com/84439

(0)
GantenGanten
上一篇 2017-08-12 11:15
下一篇 2017-08-12 14:20

相關推薦

  • bash特性及用戶和組的管理相關練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意同一個用戶登錄多次,則只顯示一次即可: 2、取出最后登錄到系統的用戶的相關信息: 3、取出當前系統上被用戶當做默認shell最多的那個shell: 4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxuser.txt文件中: 5、取出當前主機的IP地址: …

    2017-10-16
  • 20160802課堂練習題

    練習: 1、  當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作? 無法cd進入該目錄,但可以ls查看到該目錄下的文件,其余的任何操作都執行不了。 2、  當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作? 能夠進入該目錄,不能讀取到信息;但如果知道有哪些文件及目錄是可以創建…

    Linux干貨 2016-08-04
  • Grep 文本搜索工具與正則表達式

            grep (縮寫來自Globally search a Regular Expression and Print)是一種強大的文本搜索工具,它能使用特定模式匹配(包括正則表達式)搜索文本,并默認輸出匹配行。Grep在實際中對于我們的工作有著很大的作用,用于對文件的搜索,通過由正則表達式字符以及…

    2017-04-15
  • MariaDB

    Mariadb 結構化數據–>關系型數據庫 范式:Entry(每一行來描述一個整體) 半結構化數據–>YAML,XML,JSON 非結構化數據–>日志文件 NoSQL 關系型數據庫:事務能力 ACID測試(原子性,一致性,隔離性,持久性) MariaDB or MySQL: 層次模型–>…

    Linux干貨 2016-11-15
  • net25-第14周作業

    系統的INPUT和OUTPUT默認策略為DROP; ~]# iptables -P INPUT DROP ~]# iptables -P OUTPUT DROP 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機; ~]#iptables -…

    Linux干貨 2017-05-15
  • N21_第8周_網絡

    N21_第8周_網絡 作業題目: 1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。     網橋:(Bridge)也稱橋接器,是連接兩個局域網的存儲轉發設備,用它可以完成具有相同或相似體系結構網絡系統的連接。       &nbs…

    Linux干貨 2016-10-09
欧美性久久久久