文件查找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 11:52
下一篇 2015-05-11 11:57

相關推薦

  • vim編輯器及shell基礎

    1、復制/etc/rc.d/rc.sysint文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#cp /etc/rc.d/rc.sysint /tmpvim /tmp/rc.sysint:%s@^[[:space:]]\+@#&@g 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/…

    Linux干貨 2017-12-08
  • raid各級別特性

      簡介 RAID是一個我們經常能見到的名詞。但卻因為很少能在實際環境中體驗,所以很難對其原理 能有很清楚的認識和掌握。本文將對RAID技術進行介紹和總結,以期能盡量闡明其概念。 RAID全稱為獨立磁盤冗余陣列(Rdeundant Array of Independent Disks),基本思想就是把 多個相對便宜的硬盤組合起來,成為一個硬盤陣列組…

    Linux干貨 2016-01-19
  • 計算機網絡基礎知識與Linux網絡配置

    本文主要內容是: 1.講述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 2、IP地址的分類有哪些?子網掩碼的表示形式及其作用 3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。 4、如何給網絡接口配置多個地址,有哪些方式? 5、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方…

    Linux干貨 2016-11-14
  • 新的篇章

    第一天,linux,努力,奮斗!

    Linux干貨 2017-07-11
  • 馬哥教育網絡班20期 第8周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:工作于數據鏈路層,實現多個lan之間數據的轉發,隔離沖突域,類似二層交換機。 集線器:工作于物理層,實現設備的接入,數據信號放大、中轉,共享信道。把一個端口接收的所有信號向所有端口分發出去 二層交換機:工作于數據鏈路層,可連接多個lan,根據幀的mac來轉發數據,隔離沖突域…

    Linux干貨 2016-08-15
  • M20-1擴展正則表達式作業

    1、取本機ip地址 [root@centos6 ~]# ifconfig eth1      Link encap:Ethernet  HWaddr 00:0C:29:35:DD:AB     &nb…

    Linux干貨 2016-08-10

評論列表(2條)

  • stanley
    stanley 2015-05-11 11:56

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

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

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

欧美性久久久久