查找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
下一篇 2017-08-12

相關推薦

  • keepalived實現高可用LVS

    前言 vrrp介紹:  vrrp(Virtual Router Redundancy Protocol)虛擬路由冗余協議;就是把多個路由器或多個網關設備加入到組中,然后在這一組中虛擬出一個路由器,此虛擬路由器有真是的IP和MAC地址,客戶端將網關指向此虛擬路由器的IP;客戶端向此虛擬路由器的IP和MAC地址發起請求時,由活動路由器負責響應;當活動路…

    Linux干貨 2015-07-23
  • N26-博客作業-week15

    1、總結sed和awk的詳細用法 sed: 語法結構 sed [OPTION]…’script’ [input-file]…[action] -r:支持擴展正則表達式 -n:不輸出模式空間中的內容至屏幕 -e script1 -e script2 -e script3:指定多腳本運行 -f /path/to/script_file:從指定的文件中讀取…

    Linux干貨 2017-07-14
  • LVM基本應用,擴展以及縮減的實現

    這是一篇馬哥課堂博客作業,這次換個表現方式寫,前面先寫總體的操作過程,后面顯示詳情 其實馬哥視頻講的非常詳盡,聽起來特別容易理解,只是讓我要寫出來那得費九牛二虎之力,估計還得照著視頻寫。如下僅是看過視頻之后的一個操作過程,比較粗糙,僅僅是作業。。。 LVM:logical volume manager version2 邏輯卷管理系統 PV:physical…

    Linux干貨 2016-06-28
  • tar ,cpio打包解壓. shell腳本for,while,until循環. rpm包管理,循環的特殊用法. select循環菜單,函數function,rpm包查詢,yum

    tar  tar -cf 路徑+文件名字后續.tar  +路徑 創建歸檔壓縮 tar cf /testdir/etc.tar /etc/ tar cvf 可以查看解壓過程 tar tvf 預覽作用 tar xvf 解壓文件  tar zcvf /testdir/etc2.tar.gz /etc/ 解壓再壓縮到指定路徑,文件格式 …

    Linux干貨 2016-08-21
  • N26-博客作業-week10

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) 2、為運行于虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區;  (1) 為硬盤新建兩個主分區;并為其安裝grub;  (2) 為硬盤的第一個主分區提供內核和ramdisk文件; 為第二個分區提供rootfs;  (3) 為rootfs提供bas…

    2017-04-09
  • 馬哥教育網絡班22期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :%s@^[[:space:]]\+@…

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