11文件查找find和locate

有些時候我們是想要在系統中查找某個具體的文件,卻不知道路徑在哪里,只是知道其中的某些特性,比如大小或者名字什么的。這時候就要用到查找工具啦。

在文件系統上查找符合條件的文件命令有兩個,locate和find,其中locate是非實時查找即數據庫查找。而find是實時查找

locate:

用法:locate [OPTION]… [PATTERN]…

【option】

-i  不區分大小寫

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

-r 使用擴展正則表達式 查詢 

locate foo 搜索名稱或路徑中帶有foo的文件

locate -r '\.foo$' 使用擴展正則表達式來搜索以 ".foo" 結尾的文件

查詢系統上的文件索引數據庫

/var/lib/mlocate/mlocate.db 

依賴于實現構建的索引,

索引的構建是在系統較為空閑時自動進行的(周期性任務),也可管理員手動更新數據庫(updatedb)

索引構建過程需要遍歷整個根文件系統,極消耗資源

工作特點:

查找速度快(只查找數據庫中有的數據)

模糊查找

非實時查找(在索引構建之后創建的文件時不能找到的)

搜索的是文件的全路徑,不僅僅是文件名

可能只搜索用戶具備讀取和執行權限的目錄

find:

find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]

即:find [option] [查找路徑] [查找條件] [處理動作] 

查找路徑:指定具體目標路徑,【默認為當前目錄】

查找條件:指定的查找標準,可以文件名、大小、類型、權限等。默認找出指定路徑下的所有文件

處理動作:對符合條件的文件做操作,默認輸出至屏幕

【查找條件】

根據文件名和inode查找:

-name “文件名稱”: 支持使用glob (文件名通配符) *,?,[],[^]

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

inum n  按inode號查找

-samefile name 相同inode號的文件

-links n 鏈接數為n的文件

-regex “PATTERN”:以pattern匹配整個文件路徑字符串,而不僅僅是文件名稱

根據屬主屬組查找:

-user username:

-group groupname:

-uid userid:

-gid groupid:

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

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

根據文件類型查找:

-type type:  f,d,l,s,b,c,p 

根據組合條件查找:

-a  -o  -not=!

根據文件大小來查找:

-size [+|-]#UNIT   (k,M,G)

#UNIT (#-1,#] –> 如6k 即(5k,6k] 5k到6k 但不包括5k

-#UNIT:[0,#-1] –>如6k 即[0,5k]

+#UNIT:(#,∞)  大于# 但不包括#

根據時間戳查找:

以 【天】為單位

-atime[+|-]#  :  [0,#) [#,#+1) [#+1,∞]

-mtime[+|-]#  :

-ctime[+|-]#  :

以【分鐘】為單位

-amin[+|-]#  :

-mmin[+|-]#  :

-cmin[+|-]#  :

根據權限查找:

-perm [/|-] mode

mode : 精確匹配,不能多不能少

/mode 或+mode : 或關系 ugo中 只要有一個匹配即可

-mode : ugo必須至少擁有或比mode更多權限

【處理動作】

-print:默認處理動作

-ls:類似于對查找到的文件執行 ls -l

-delete:刪除查找到的文件

-fls file:查找到的所有文件的長格式信息保存至指定文件中

-ok commond {} \; 對查找到的每個文件執行有commond指定的命令,每個文件執行前都要交互式確認

-exec commond {} \; 對查找到的每個文件執行有commond指定的命令

{}:用于引用查找到的文件名稱自身

例:

find -name “*.conf” -exec cp {} {}.orig \;

?備份配置文件,添加.orig這個擴展名

find /tmp -ctime +3 -user joe -ok rm {} \;

?提示刪除存在時間超過3天以上的joe的臨時文件

find ~ -perm -002 -exec chmod o-w {} \ ;

?在你的主目錄中尋找可被其它用戶寫入的文件

find /data –type f -perm 644 -name “*.sh” –exec chmod 755 {} \;

?在 /data 目錄中 找出所有 以.sh 結尾沒有執行全選的文件 增加執行權限

find /home -type d -ls 

找出所有/home 目錄下的 目錄 列出詳細信息

find /var -u root -g mail 

find /var not \(-user root -o -user lp -o -user gdm \)

find /var -ctime -7 -not \( -user root -o -user postfix \)

find / -nouser -nogroup -atime -7 

find /etc -size +1M -type f 

find /etc -not \( -perm +222 \)

find /etc -not \( -perm -222 \)

find /etc/init.d -perm /113 

find /etc -path '/etc/sane.d' -a -prune -o -name "*.conf" -print

find /etc -path '/etc/front*' -prune -o -path '/etc/hu*' -prune -o -path '/etc/lib*' -prune -o -path '/etc/se*' -prune -o -path '/etc/init' -prune -o -name "*.conf" -print

–joker的部落閣

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

(0)
jokerjoker
上一篇 2016-11-27 21:31
下一篇 2016-11-27 22:45

相關推薦

  • 馬哥教育絡班22期-第1周博客作業

    第一周博客作業 1 描述計算機的組成及其功能 計算機由硬件和軟件兩大部分組成: 1.1 計算機硬件組成與功能 計算機硬件由運算器、控制器、存儲器、輸入設備、輸出設備五大部分組成。 1.1.1 運算器 算術邏輯部件ALU,執行算術運算和邏輯運算。例如:加減乘除,移位,取模。運算器的核心是加法器。 1.1.2 控制器 控制器是計算機的指揮中心,它的主要作用是按照…

    Linux干貨 2016-08-14
  • 正則表達式簡述

    bashshell中的正則表達式         俗話說,工欲善其事,必先利其器。由于很多Linux的文本處理工具普遍使用到了正則表達式,因此,不理解正則表達式就無法愉快的從事Linux日常系統管理。那什么是正則表達式呢?         正則表達式(Regu…

    Linux干貨 2015-05-23
  • Linux常見文件管理命令

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。3、請使用命令行展開功能來完成以下練習:(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d(2)、創建/tmp/mylinux目錄下的:mylinux/├── bin├── boot│??…

    2018-02-26
  • LAMP+logzilla+sphinx+syslog-ng實現集中日志管理(第一版)[原創]

    一、前言        目前查看系統日志比較被動,遇到系統不正常或故障時才會主動去檢查服務器系統日志,這樣一來不能及時了解系統的運行情況,因此部署Logzilla+sphine+syslog-ng來彌補這不足。以下為安裝、部署平臺詳細步驟。(Logzilla是什么新東西?其實前身就是php-syslog-ng,引用作者…

    Linux干貨 2015-03-27
  • linux初識

    一、計算機的組成及其功能: 存儲器:    實現記憶功能的部件用來存放計算程序及參與運算的各種數據 運算器:    負責數據的算術運算和邏輯運算即數據的加工處理 控制器:    負責對程序規定的控制信息進行分析,控制并協調輸入,輸出操作或內存訪問 輸入設備:    實現計算程序和…

    Linux干貨 2016-10-30
  • FHS文件系統結構

    FHS文件系統結構 FHS(Filesystem Hierarchy Standard)文件系統層次結構標準是根據無數開發者的經驗總結而來的,多數Linux版本采用這種文件組織形式,FHS定義了系統中每個區域的用途、所需要的最小構成的文件和目錄同時還給出了例外處理與矛盾處理,并且會維持更新。

    Linux干貨 2016-10-29
欧美性久久久久