Linux中find命令的用法

 
Windows操作系統要查找一份文件是相當簡單的事情,只要在桌面上點擊“開始搜索”中就能按照各種方式在本地硬盤上,局域網絡,甚至在INTERNET上查找各種文件,文檔。可是在linux中要查找某一個文件就是一件很麻煩的事情。畢竟在linux中需要我們使用專用的“查找”命令來尋找在硬盤上的文件。Linux下的文件表達式非常複雜,對於linux新手來說,find命令也是瞭解和學習linux文件特點的方法。下面就詳細爲大家介紹強大的find命令的全部使用方法和用途。
Find命令用於進行文件查找,它有實施查找、精確、支持衆多查找標準,但是它是遍歷指定目錄中的所有文件完成查找,所以速度非常慢。格式是:find 查找路徑  查找到以後的處理運作。不寫查找路徑默認爲當前目錄,查找標準默認爲指定路徑下的所有文件,處理運作默認爲顯示下面說一下它的主要命令。
   匹配標準
        -name:'filename':對文件名精確查找
        *:任意長度的任意字符
           [ ]:指定此範圍   
        -iname:文件匹配不區分大小寫
        -regex PATTERN:基於正則表達式進行文件名匹配
              -user USERNAME:根據屬主查找
              -group GROUPNAME:根據屬組查找
              -uid UID:根據UID查找
              -gid GID:根據GID查找
              - nouser : 查找沒有屬主的文件
        - nogroup :查找沒有屬組的文件
             
           -type:根據文件類型查找
                  f:普通文件
                     d:目錄文件
                     c:字符設備文件
                     b:塊設備文件
                     l:符號鏈接文件
                     p:命令管道文件
                     s:套接字文件
              字符大小
              -size  [+(內)|-(在限定之外)、什麼都不加爲精確到]
                  #k:
                     #M:
                     #G
   組合條件:
        -a
              -o 
              -not 
   時間(也可以使用+-與字符相同)
   -mtime:
   -ctime:
   -atime:
       -mmin:user
       -cmin:
       -amin:
   根據權限查找 
       perm MODE 精確匹配
           /MODE 任意一位匹配既滿足條件
              -MODE 文件權限能完全包含此MODE時才能顯示
      
動作:
    -print:顯示
    -ls:類似ls -l的形式顯示每一個文件的詳細
    -ok COMMAND {}\;每一部操作都需要用戶確認
    -exec COMMAND{}\;不需要確認
下面就幾個例子來說明一下用法:
  1、查找/var目錄下屬主爲root並且屬組爲mail的所有文件;
  find /var -user root -group mail
    find命令先找出/var,在查找屬主爲root且屬組爲mail的文件
  2、查找/usr目錄下不屬於root,bin,student的文件;
  find /usr -not -user root -a -not -user bin -a -not -user student
  find /usr -not \( -user root -o -user bin -o -user student \)
  3、查找/etc目錄下最近一週內內容修改過且不屬於rootstudent用戶的文件;
  find /etc -mtime -7 -not \ ( -user root -o -user student \)
  find /etc -mtime -7 -not -user root -a -not -user student
  首先,使用find命令查找/etc,然後是修改命令時間爲mtime,最近一週,所以小於7天爲“-7”不屬於root           student的用戶的文件
  4、查找當前系統上沒有屬主或屬組且最近1天內曾被訪問過的文件,並將其屬主屬組均修改爲root
  find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \; 
  沒有屬主或沒有屬組爲 -nouser -o  -nogroup 並且最近一天曾被訪問“-a -atime -1” 
  修改屬主屬組爲root,使用chown命令。{}表示由find找到的內容
  5、查找/etc目錄下大於1M的文件,並將其文件名寫入/tmp/etc.largefiles文件中;
  find /etc -size +1M >> /tmp/etc.largefiles
  6、查找/etc目錄下所有用戶都沒有寫權限的文件,顯示出其詳細信息;
  find /etc -not -perm /222 –ls
  用戶沒有寫權限,使用

 

-perm  MODE
     -mode:每一位權限必須精確匹配.文件權限完全包含mode才能顯示
      /mode:任意一位匹配即滿足條件
  所以是“-not -perm /222,”並查看使用“-ls”命令
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章