文件的查找工具find

有的時候我們需要快速查找一些文件,但是我們卻不知道這個文件在哪的時候,就急切的需要一個工具來幫助我們,這時候find就誕生了。Find能實現精確查找,雖然速度略慢,但是并不妨礙我們使用,下面就介紹一下find的使用方法。
(一) 基于時間戳的查找
          假如需要查看七天前的文件,但是總不能一一的去看時間查找,這點和windows不一樣,windows可能是默認的按時間先后順序排列的,所以在這里我們就要基于命令去查找了。以天為單位的選項分別有atime,mtime,ctime.
          分別是訪問時間,文件數據修改時間,文件元數據修改時間。下面舉例說明,以便讓大家更好的明白。
          Eg: 查詢/app目錄下五天以內被訪問的文件
  文件的查找工具find
          解釋:-atime 就是訪問時間,-5就是指0到5天以內的,-ls就是長列出所查到的文件,這里需要說明一下時間的問題。如果是按時間或者天數來算的話,-5是[0,5),意思就是大于等于0  且小于5,+5是[6,無窮),意思就是大于等于6,直接就一個5的話,就是[5,6),意思就是大于等于5且小于6.
(二) 基于文件用戶名查找
          假如你想找user是joe的文件,只需選項-user.
          Eg:查找/app下所屬人為liubei的文件
 文件的查找工具find
       解釋:/app/* 就是查找/app下的文件,不包括app目錄本身,小編之前犯了錯誤,把目錄本身也截取下來了,在這里提醒廣大用戶,不要犯同樣的錯誤,但是如果你想要把目錄也一起算的話就把/*去掉就可以了。-user就是基于用戶名查找。
(三) 基于文件大小查找
          假如想查找文件大于1M的,只需選項-size
          Eg:查/app下大于1M的文件
          首先看一下app下的文件大小哦,這里文件大于1M的只有a1
 文件的查找工具find
          下面開始截取符合規定的文件
 文件的查找工具find  
          解釋:-size就是基于文件大小查找,+1M就是(1,無窮),意思就是大于1M的文件。
(四) 基于文件類型查找
          假如想查找/app下的普通文件,只需選項-type f.
          Eg:查找/app下的目錄文件
 文件的查找工具find
          解釋:-type就是基于類型查找,d就是目錄的意思,f為普通文件,l符號鏈接文件,S套接字文件,b塊設備文件,c字符設備文件。
(五) 基于文件權限查找
          選項是-perm 權限
          Eg:查找/app下有執行權限的文件
 文件的查找工具find
          解釋:-perm就是 基于權限的查找,/111意思是ugo任意一位有執行權限就可以。
(六) 基于組名的查找
          選項是 –group 組名
          Eg:查找/app下組名是liubei的文件
 文件的查找工具find
          解釋:-group 就是基于組名的查找。
(七) 基于文件uid的查找
         選項是-uid userid
         Eg:查找/app uid為1004的文件
 文件的查找工具find
(八) 基于文件名稱的查找
          選項是-name
          Eg:查找/app下 文件名為a開頭的文件
 文件的查找工具find
          解釋:a*的意思就是以a開頭 后面跟任意內容的文件。
(九) 基于沒有所屬人沒有所屬組的查找
          假如一個文件所屬人,所屬組被刪除了,但是想查找,就需要這個命令,-nouser  -nogroup
          Eg:查找沒有所屬組的文件
 文件的查找工具find
          Eg:查找沒有所屬人的文件
 文件的查找工具find
         解釋:-nouser就是沒有所屬人,-nogroup就是沒有所屬組
下面給出一些平時的練習,以供參考。
1.查找/var目錄下不屬于root、lp、gdm的所有文件
解題方法:find /var -not \( -user root -o -user lp -o -user gdm \) -ls
 文件的查找工具find
解題思路:-o就是或的意思,-a就是且的意思,-not就是非的意思。在這里使用了德摩根定理,如下:
(非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或 B)
所以查找不屬于三個用戶的文件就是不屬于root,也不屬于lp,也不屬于gdm,所以用-not的話 ,括號里面就要用或的關系,才能保證三個條件都滿足。
2.查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件
 解題方法:find / \( -nouser -o -nogroup \) -a -atime -7 –ls
 文件的查找工具find
解題思路 :使用-o就是或的關系,但是中間要用括號括起來,不然的話后面的-a連著的就只有 –nogroup了,使用\是轉義的意思,在這里不能直接識別括號,所以需要轉義。
3.查找/etc目錄下所有用戶都沒有寫權限的文件
 解題方法:find /etc ! -perm /222 –ls
 文件的查找工具find
解題思路:前面說過/111,這里/222意思和那個是大致一樣的,意思就是任意一位有讀權限就可以,前面加個!就是非的意思,這里使用德摩根定理,不會的同學可以看一下前面的。

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

(0)
llllll
上一篇 2017-08-13
下一篇 2017-08-13

相關推薦

  • Linux系統用戶、組

    1、資源分派:          Authentication  認證        Authorization   授權     &nbs…

    Linux干貨 2016-08-04
  • find命令使用練習

    1、  查找/var目錄下屬主為root,且屬組為mail的所有文件   2、  查找/var目錄下不屬于root、lp、gdm的所有文件   3、  查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件   4、  查找當前系統上沒有屬主或屬組,且最…

    Linux干貨 2016-08-15
  • Linux基礎知識(六)

    本問主要講述Linux的基礎知識,具體包一下內容: 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp sed "s/^[[:space:]]\?/#/g" /tmp/rc.sysini…

    Linux干貨 2016-10-30
  • N22+北京zhangzhangzhang+第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1    ls -ld /home/tuser1   &nb…

    Linux干貨 2016-09-05
  • N22-第一周博客:計算機及Linux系統的入門學習了解

                                  …

    Linux干貨 2016-08-15
  • Linux網絡功能協議介紹(二)

      上個內容中,我們知道了只要是本地通信得廣播,而廣播不是邏輯(IP)地址對應的MAC地址,所以主要是將邏輯地址轉換成目標地址,這叫地址解析稱為ARP,還有一種是反向解析RARP,都是在本地網絡中完成的,邏輯IP地址分為兩個階段,前一段分為網絡地址,后一段分為主機地址,如何判定?用子網掩碼用來判斷那一部分是網絡位,那一部分是主機位,最重要…

    Linux干貨 2016-11-25
欧美性久久久久