文本查找相關命令簡單介紹

文件查找命

在文件系統上查找符合條件的文件

  • 非實時查找:基于索引查找 locate

  • 實時查找:find


locate介紹

依賴于事先構建的索引:索引的構建是在系統較為空閑時自動進行(周期性任務):手動更新數據庫(updatedb)

索引構建過程需要遍歷整個根文件系統,極消耗資源,生產中盡量避免手動更新。

語法

locate KEYWORD

-i:忽略大小寫搜索

-n N:只列舉前N個匹配項目。


find介紹

實時查找工具,通過遍歷指定路徑下的文件系統完成文件查找

語法: find [選項]…[查找路徑] [查找條件] [處理動作]

  • 查找路徑:指定具體目標路徑,默認為當前目錄
  • 查找條件:指定查找標準,可以文件名、大小、類型、權限等標準進行,默認為找出路徑下的所有文件
  • 處理動作:對符合條件的文件做什么操作,默認輸出至屏幕

查找條件

根據文件名

-name “文件名稱”:支持使用glob

[root@localhost: /root]# find /etc -name "passwd" 
/etc/pam.d/passwd 
/etc/passwd

-iname “文件名稱”不區分字母大小寫


根據屬主、屬組

-user:查找屬主為指定用戶的文件 

-group:查找屬組為指定組的文件

[xiangge@localhost: /home/xiangge]$ find /home -user xiangge -ls
 523265 4 drwx------ 16 xiangge  xiangge 4096 Apr 9 21:51 /home/xiangge
 523388 4 -rw------- 1 xiangge  xiangge 1112 Apr 9 22:00 /home/xiangge/.bash_history 

-uid:查找屬組為指定UID號的文件

-gid:查找屬組為指定的GID號的文件

-nouser:查找沒有屬主的文件

-nogroup:查找沒有屬組的文件


根據文件類型查找

-type:

  • f:普通文件
  • d:目錄文件
  • l:符號鏈接文件
  • s:套接字文件
  • b:塊設備文件
  • c:字符設備文件
  • p:管道文件
[xiangge@localhost: /home/xiangge]$ find /tmp -type d -ls 
1179649 4 drwxrwxrwt 15 root     root 4096 Apr 9 22:50 /tmp 
1577727 4 drwxrwxrwt 2 root     root 4096 Apr 3 23:00 /tmp/.XIM-unix 
1313311 4 drwxrwxrwt 2 root     root 4096 Apr 3 23:25 /tmp/.X11-unix 
1446044 4 drwxrwxrwt 2 root     root 4096 Apr 3 23:00 /tmp/.Test-unix 
1577726 4 drwxrwxrwt 2 root     root 4096 Apr 3 23:25 /tmp/.ICE-unix 
1185729 4 drwx------ 3 root     root 4096 Apr 3 23:22 /tmp/systemd-private-fb3197586e804ebe969df0ca549914a1-rtkit-daemon.service-LcZqdW

組合條件

  • 與:-a
  • 或:-o
  • 非:-not,!

事例:找出/tmp目錄下,屬主不是root,且文件名不是fstab的文件

第一方法:
find /tmp \( -not -user root -a -not -name 'fstab' \) -ls
  
第二種方法:
find /tmp -not \( -user root -0  -name 'fstab' \) -ls

根據文件大小查找

-size [+][-]#UNIT 常用單位:k,M,G

如:

  • 5k: 5k<x<=6k
  • -5k: x<5k
  • +5: x>6k
[xiangge@localhost: /home/xiangge]$ find /var -size -5k -ls

根據時間戳查找

以天為單位:

  • atime[+|-]#
  • mtime
  • ctime

如:

7:7<=x<8

-7:x<7

+7:x>=8

以分鐘為單位

  • amin
  • mimn
  • cmim

處理動作:

  • -print 打印到屏幕上
  • -ls 打印到屏幕上 類似于ls -l
  • -delete 刪除操作 只刪除文件,不能刪除非空目錄
  • -fls file 查找到的文件信息保存到指定的文本中
  • -ok 在執行后面的動作之前會提示你是否需要執行(交互式的)
  • -exec CMD {} ; 執行后面的命令 {} 表示前面find出的結果 ; 固定用法
[xiangge@localhost: /home/xiangge]$ touch test.txt
[xiangge@localhost: /home/xiangge]$ find /home/xiangge  -cmin -5 
/home/xiangge/test.txt
[xiangge@localhost: /home/xiangge]$ find /home/xiangge  -cmin -5 -exec mv {} {}.new \; 
/home/xiangge/test.txt.new

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

(0)
祥健祥健
上一篇 2017-04-10
下一篇 2017-04-10

相關推薦

  • bash腳本與程序包管理

    概述:本章主要介紹bash編程中的函數和數組以及字符串處理和程序包管理工具等,來幫助小伙伴們更進一步的了解bash編程的內容和軟件的安裝、更新、卸載、查詢等操作。 一、函數介紹 函數function是由若干條shell命令組成的語句塊,實現代碼重用和模塊化編程。 它與shell程序形式上是相似的,不同的是它不是一個單獨的進程,不能獨立運行,而是shell程序…

    Linux干貨 2016-08-24
  • CA和證書

    A與B雙方通信,需要通過簽證機構CA頒發證書,才可以互相信任,從而安全的進行數據傳輸。想要獲取證書,除了付費購買認證機構的證書,還可以自簽名獲取證書。 openssl命令可以搭建CA,實現自簽名證書。下面以三臺主機為例,模擬根CA、子CA的搭建,以及客戶端申請證書的過程。 一、搭建根CA /etc/pki/tls/openssl.cnf文件是openssl的…

    2017-09-10
  • 馬哥教育網絡班22期+第十周課程練習

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情)    CentOS系統啟動流程為:POST –> BootSequence(BIOS) –> BootLoader(MBR) –> Kernel(ramdisk) –> r…

    Linux干貨 2016-12-13
  • 實例;編譯安裝apache 2.2,并啟動此服務

    基于c語言的源代碼編譯安裝,通常有三個步驟     ./configure         (1)通過選項傳遞參數,指定啟用特性,安裝路徑等:執行時會參考用戶的指定以及makefile.in文件生成makefile.  &nbsp…

    Linux干貨 2016-08-24
  • 15 權限管理及作業

    15 權限管理及作業(作業單獨一篇) 一、雜項知識整理 1、訪問控制列表:ACL:Access Control List,實現靈活的權限管理。     除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限。     centos7.0之后默認創建的ext4文件系統有ACL功…

    Linux干貨 2016-08-04
  • 第七周作業

    查看作業內容請移步此鏈接:http://www.cnblogs.com/wangenzhi/p/6403568.html

    Linux干貨 2017-02-15

評論列表(1條)

  • renjin
    renjin 2017-04-12 13:05

    主要寫了linux下查找方件命令的詳細用法,內容寫的很不錯,排版也挺好的,贊!

欧美性久久久久