文件查找locate 和 find

大綱
一、前言
二、locate
三、find

一、前言

在windows下,我們查找文件,可以在搜索里面,輸入文件名或通配符就可以進行搜索。在Linux下,要查找文件可以找locate 或 find命令進行查找,而且這些命令還有其他特別的功能。

二、locate

特點:此命令是非實時查找命令,依賴于索引,因此搜索速度快。但是索引的構建是當系統空閑時由系統自動進行,是個每天任務。因此,你搜索的文件若是索引構建后有變化的,那樣就有問題。構建索引可以手動進行,命令:updatedb(有點類似make whatis),但是構建索引需要時間,長短由系統情況而定。

舉例:

查找文件ubuntu

blob.png

發現,只要在路徑名中帶有關鍵字,或基名帶關鍵字的,都可以被搜索出來,因此,此命令用的不多。

三、find

特點:實時遍歷各個文件查找,速度慢于locate.屬于精確查找。

命令:find [option]… [查找路徑] [查找條件] [處理動作]

查找路徑: 默認當前目錄

查找條件:

-name 文件名稱:支持globbing字符
-user USERNAME: 根據文件的屬主查找
-group GRPNAME:根據文件的屬組查找
-uid UID:根據UID 查找
-gid GID:根據GID查找
-nouser :查找沒有屬主的文件
-nogroup :查找沒有屬組的文

 舉例子說明下:

按文件名查找,默認是本路徑下:

blob.png

跟locate不一樣,只會在文件名那里才會出現要搜索的文件

其他的類似。

下面介紹下沒有屬主和沒有屬組的文件:如果把一個用戶刪除,在屬主、屬組的位置將被數字代替:

blob.png

因此,查找的時候使用-nouser -nogroup 可以查找到相應的文件

blob.png

組合條件查找

與:-a,同時滿足條件(可省略)
或:-o,滿足一個即可
非:-not / !,條件取反

blob.png
或者

blob.png

注意,括號需要轉義 \( \)

-type 根據文件類型查找

f: 普通文件
d: 目錄文件
l: 符號鏈接
b: 塊設備
c: 字符設備
s: 套接字文件
p: 命名管道
比如:查找 /dev 下的字符設備:

blob.png

-size 根據文件大小查找(常用單位 K M G)

= # :如=2 ,顯示范圍x 1 <x<=2  
+ # :如+2 ,顯示范圍x  >2
- # :如-2 ,顯示范圍x  <=1

舉例:查找3k-4K(含)以內的文件

blob.png

以時間為單位查找(天為單位)

-atime
  +# :如+2 3天以前
  =# :如 2  2-3天
  -#:如-2  2天之內
-mtime
-ctime

舉例

查找修改時間是11天前的文件

blob.png

根據權限查找

-perm [+/-] MODE 
   + 任何一類用戶的權限只要能包含對其指定的任何一位權限即可
   - 每類用戶指定的檢查權限都匹配

舉例 
查找其他用戶有執行權限的文件

blob.png查找所有用戶都沒有寫權限的文件,因為+的權限是或,前面加個非,就變成了與blob.png

執行動作

看到了我上面的例子,有些在后面加了-ls,這就是執行動作的一種

-print: 默認處理動作,顯示
-ls :類似于ls -l
-exec COMMOND {}\; :表示對查找的內容進行處理的動作,{}表示查找到的內容的引用

blob.png

當然我們也可以將查找到的文件直接刪除,該權限等等。但是要注意的是,如果直接刪除是沒有命令交互提示的。

在使用find命令的-exec選項處理匹配到的文件時, find命令將所有匹配到的文件一起傳遞給exec執行。但有些系統對能夠傳遞給exec的命令長度有限制,這樣在find命令運行幾分鐘之后,就會出現 溢出錯誤。錯誤信息通常是“參數列太長”或“參數列溢出”。這就是xargs命令的用處所在,特別是與find命令一起使用。

find | xargs COMMAND

blob.png

以上是一些文件查找的用法和體會,在今后的學習中,還會繼續慢慢體會。

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

(0)
麥鯨麥鯨
上一篇 2015-05-11
下一篇 2015-05-11

相關推薦

  • find命令簡單總結

     find     字符串類查詢:            -type   //根據文件類型查找       &…

    Linux干貨 2015-09-14
  • N26-第一周作業

    1、計算機主要由硬件部分和軟件部分組成。     硬件部分:         (1)、CPU:包括運算器、控制器、寄存器、緩存。CPU的核心部件是運算器和控制器,它的功能主要是解釋計算機指令以及處理計算機軟件中的數據。         (2…

    Linux干貨 2016-12-27
  • 軟連接與硬鏈接區別

    前言: 今天學習了文件系統,簡單的接觸到文件系統構成的原理。原來我們不管在linux和win上面刪除某個文件只是刪除一個鏈接而已。而linux把鏈接分為軟鏈接和硬鏈接。接下來我們就從文件系統構成的基本原理出發來說明下linux軟鏈接和硬鏈接的區別。 文件系統簡述: linux的哲學就是一切皆文件。為了方便人們的使用,我們可以通過看文件名來區分不同的文件。但作…

    Linux干貨 2016-10-31
  • 將兩個局域網用openvpn連接起來

    考慮到我們做集群的時候需要用到可能有20臺機器,可能我的要求跟別人的不一樣的,我需要做20臺左右的集群,不僅僅是會,而且需要非常熟練的搭建,最后通過腳步一鍵自動化部署安裝。 目前我有兩臺電腦,一臺可以運行7臺,另一臺可以運行12臺左右,剛好可以滿足的我的要求,但是我兩臺電腦都是設置的nat模式的網絡,為什么我非要配置nat模式呢,根據集群架構思想,為了保證架…

    Linux干貨 2017-05-01
  • Linux目錄結構

    Linux目錄結構 查看目錄(/) 樹狀目錄結構: 常見目錄的解釋 Linux 下的文件類型 路徑 Linux目錄結構 查看目錄(/) 登錄系統后,在當前命令窗口下輸入命令: [root@localhost ~]# ls /bin   dev  home  lib64       media &nb…

    Linux干貨 2016-09-06
  • DNS原理詳解

    1、DNS概述   domain name service  區域名稱服務或者domain named system 區域名稱系統,是互聯網最基礎的服務,分為正向域名解析(將域名解析為IP地址)和反向域名解析(將IP地址解析為域名)兩部分。 2、bind   bind(Berkeley Internet Name Domain)…

    Linux干貨 2016-08-26

評論列表(2條)

  • stanley
    stanley 2015-05-11 11:56

    標簽其實應該認真寫,增加seo率才能提高貢獻率

    • 麥鯨
      麥鯨 2015-05-12 11:22

      @stanley好的,一定注意。謝謝老師~!

欧美性久久久久