熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Linux 的 Find

2013-11-13 16:00:19  來源: Oracle 

  每一種操作系統都是由成千上萬個不同種類的文件所組成的其中有系統本身自帶的文件用戶自己的文件還有共享文件等等我們有時候經常忘記某份文件放在硬盤中的哪個地方在微軟的WINDOWS操作系統中要查一份文件是相當簡單的事情只要在桌面上點擊開始>搜索中就能按照各種模式在本地硬盤上局域網絡甚至在INTERNET上查各種文件及檔案
  
  可是使用Linux的用戶就沒有那麼幸運了在Linux上查 某個文件確實是一件比較麻煩的事情畢竟在Linux中需要我們使用專用的命令來尋找在硬盤上的文件
  Linux下的文件表達格式非常復雜不象WINDOWSDOS下都是統一的AAAAAAABBB格式那麼方便查在WINDOWS中只要知道要查的文件的文件名或者後綴就非常容易查到Linux中查 文件的命令通常為find命令find命令能幫助我們在使用管理Linux的日常事務中方便的查 出我們需要的文件對於Linux新手來說find命令也是了解和學習Linux文件特點的方法因為Linux發行版本繁多版本升級很快在Linux書籍上往往寫明某個配置文件的所在位置往往Linux新手按圖索骥還是不能找到比如說REDHAT Linux O和REDHAT Linux 中有些重要的配置文件所在的硬盤位置和文件目錄就有了很大的改變如果不學會使用find命令那麼在成千上萬的Linux文件中要找到其中的一個配置文件是相當困難的筆者在沒有精通find命令之前就吃過這樣的苦頭下面就詳細為大家介紹強大的find命令的全部使用方法和用途
  
  透過文件名查法︰
  
  這個方法說起來就和在WINDOWS下查 文件一樣容易理解了如果你把這個文件放在單個的活頁夾裡面只要使用常見的ls命令就能方便的查 出來那麼使用find命令來查 它就不能給你留下深刻的印象畢竟find命令的強大功能不止這個如果知道了某個文件的文件名而不知道這個文件放到哪個活頁夾甚至是層層套嵌的活頁夾裡舉例說明假設你忘記了這個文件在系統的哪個目錄下甚至在系統的某個地方也不知道則這是可以使用如下命令︰
  
  find / name
  
  這個命令語法看起來很容易就明白了就是直接在find後面寫上 name表明要求系統按照文件名查 最後寫上這個目標文件名即可稍等一會系統會在計算器屏幕上顯示出查 結果列表︰
  
  etc/
  
  這就是這個文件在Linux系統中的完整路徑查成功
  
  如果輸入以上查命令後系統並沒有顯示出結果那麼不要以為系統沒有執行find/ name 命令而可能是你的系統中沒有安裝Apache服務器這時只要你安裝了Apache Web服務器然後再使用find / name 就能找到這個配置文件了
  
  無錯誤查技巧︰
  
  在Linux系統中find命令是大多數系統用戶都可以使用的命令並不是ROOT系統管理員的專利但是普通用戶使用find命令時也有可能遇到這樣的問題那就是Linux系統中系統管理員ROOT可以把某些文件目錄設置成禁止訪問模式這樣普通用戶就沒有權限用find命令來查詢這些目錄或者文件當普通用戶使用find命令來查詢這些文件目錄是往往會出Permissiondenied(禁止訪問)字樣系統將無法查詢到你想要的文件為了避免這樣的錯誤我們可是使用轉移錯誤提示的方法嘗試著查文件輸入find / name access_log >/dev/null
  
  這個方法是把查 錯誤提示轉移到特定的目錄中去系統執行這個命令後遇到錯誤的訊息就直接輸送到stderrstream access_log 就是表明系統將把錯誤訊息輸送到stderrstream /dev/null是一個特殊的文件表明空的或者錯誤的訊息這樣查詢到的錯誤訊息將被轉移了不會再顯示了
  
  在Linux系統查 文件也會遇到這樣一個實際問題如果我們在整個硬盤這個系統中查 某個文件就要花費相當長的一段時間特別是大型Linux系統和容量較大的硬盤文件放在套嵌很深的目錄中的時候如果我們知道了這個文件存放在某個大的目錄中那麼只要在這個目錄中往下找就能節省很多時間了使用find /etc name
  就可以解決這個問題上面的命令就是表示在etc目錄中查詢這個文件
  這裡再說明一下/ 這個函數符號的含義如果輸入 find/ 就是表示要求Linux系統在整個ROOT目錄下查 文件也就是在整個硬盤上查 文件find/etc就是只 在 etc目錄下查 文件因為find/etc表示只在etc目錄下查 文件所以查 的速度就相應要快很多了
  
  根據部分文件名查 方法︰
  
  這個方法和在WINDOWS中查 已知的文件名方法是一樣的不過在Linux中根據部分文件名查 文件的方法要比在WINDOWS中的同類查 方法要強大得多例如我們知道某個文件包含有srm這個字母那麼要找到系統中所有包含有這個字母的文件是可以實現的輸入︰
  
  
  find /etc name *srm*
  
  這個命令表明了Linux系統將在/etc整個目錄中查 所有的包含有srm這個字母的文件比如 absrmyz tibcsrm等等符合條件的文件都能顯示出來如果你還知道這個文件是由srm 這個字母打頭的那麼我們還可以省略最前面的星號命令如下︰
  
  find/etc name srm*
  
  這是只有像srmyz 這樣的文件才被查 出來象absrmyz或者 absrm這樣的文件都不符合要求不被顯示這樣查 文件的效率和可靠性就大大增強了
  
  根據文件的特征查詢方法︰
  
  如果只知道某個文件的大小修改日期等特征也可以使用find命令查 出來這和WINDOWS系統中的搜索功能是基本相同的在微軟的搜索中WINDOWS中的搜索助理使得搜索文件和活頁夾打印機用戶以及網絡中的其它計算器更加容易它甚至使在Internet 上搜索更加容易搜索助理還包括一個索引服務該服務維護了計算器中所有文件的索引使得搜索速度更快使用搜索助理用戶可以指定多個搜索標准
  例如用戶可以按名稱類型及大小搜索文件和活頁夾用戶甚至可以搜索包含特定文本的文件如果用戶正使用 Active Directory這時還可以搜索帶有特定名稱或位置的打印機
  
  例如我們知道一個Linux文件大小為 bytes那麼我們可是使用如下命令來查詢
  find / size c字符 c 表明這個要查 的文件的大小是以bytes為單位如果我們連這個文件的具體大小都不知道那麼在Linux中還可以進行模糊查 模式來解決
  例如我們輸入find/ size +c 這個命令則標明我們指定系統在根目錄中查出大於字節的文件並顯示出來命令中的是表示要求系統只列出大於指定大小的文件而使用則表示要求系統列出小於指定大小的文件下面的列表就是在Linux使用不同 find命令後系統所要作出的查 動作從中我們很容易看出在Linux中使用find命令的模式是很多的 find命令查 文件只要靈活應用絲毫不必在WINDOWS中查 能力差
  
  
  find / amin # 查 在系統中最後分鐘訪問的文件
    find / atime # 查 在系統中最後小時訪問的文件
    find / empty # 查 在系統中為空的文件或者活頁夾
    find / group cat # 查 在系統中屬於 groupcat的文件
    find / mmin # 查 在系統中最後分鐘裡修改過的文件
    find / mtime #查 在系統中最後小時裡修改過的文件
    find / nouser #查 在系統中屬於作廢用戶的文件
    find / user fred #查 在系統中屬於FRED這個用戶的文件
  
  下面的列表就是對find命令所可以指定文件的特征進行查 的部分條件在這裡並沒有列舉所有的查 條件參考有關Linux有關書籍可以知道所有find命令的查函數
    amin n
    查 系統中最後N分鐘訪問的文件
    atime n
    查 系統中最後n*小時訪問的文件
    cmin n
    查 系統中最後N分鐘被改變狀態的文件
    ctime n
    查 系統中最後n*小時被改變狀態的文件
    empty
    查 系統中空白的文件或空白的文件目錄或目錄中沒有子目錄的活頁夾
    false
    查 系統中總是錯誤的文件
    fstype type
    查 系統中存在於指定文件系統的文件例如︰ext
    gid n
    查 系統中文件數字組 ID 為 n的文件
    group gname
    查 系統中文件屬於gnam文件組並且指定組和ID的文件
  
  Find命令的控制選項說明︰
  
    Find命令也提供給用戶一些特有的選項來控制查 操作下表就是我們總結出的最基本最常用的find命令的控制選項及其用法
    
    用途描述
    daystart
    測試系統從今天開始小時以內的文件用法類似amin
    depth
    使用深度級別的查 過程模式在某層指定目錄中優先查 文件內容
    follow
    遵循通配符鏈接模式查 ; 另外也可忽略通配符鏈接模式查詢
    help
    顯示命令摘要
    maxdepth levels
    在某個層次的目錄中按照遞減方法查
    mount
    不在文件系統目錄中查 用法類似 xdev
    noleaf
    禁止在非UNUX文件系統MSDOS系統CDROM文件系統中進行最優化查
    version
    打印版本數字
  
  使用follow選項後fin
From:http://tw.wingwit.com/Article/program/Oracle/201311/17656.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.