文件實時查找工具-find

find:命令

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

工作特點:查找速度慢,精確查找,實時查找,可能只搜索用戶具備讀取和執行的目錄

用法:

?find【OPTION]…[查找路徑】【查找條件】【處理動作】

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

(1)查找條件

指定搜索索層級:

-maxdepth level 最大搜索目錄深度,指定目錄為第1級
-mindepth level 最小搜索目錄深度

例搜索第二層

fing /ect/profile.d/ -maxdepth 2 -mindepth 2

【2】根據文件名和inode查找:

-name “文件名稱”:支持使用glob *, ?, [], [^]
-iname “文件名稱”:不區分字母大小寫
-inum n 按inode號查找
-samefile name 相同inode號的文件
-links n 鏈接數為n的文件
-regex “PATTERN”:以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱

【3】根據屬主、屬組查找:

-user USERNAME:查找屬主為指定用戶(UID)的文件
-group GRPNAME: 查找屬組為指定組(GID)的文件
-uid UserID:查找屬主為指定的UID號的文件
-gid GroupID:查找屬組為指定的GID號的文件
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件

【3】根據文件類型查找:

-type TYPE:
f: 普通文件 ? ?d: 目錄文件 ?l: 符號鏈接文件 ?s:套接字文件 ?b: 塊設備文件 ?c: 字符設備文件 ?p: 管道文件
空文件或目錄 -empty
示例: ?find /app -type d -empty

組合條件: 與:-a ? 或:-o ? ? ? ? 非:-not, !

德·摩根定律:

(非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或 B)

示例:
!A -a !B = !(A -o B)
!A -o !B = !(A -a B)

根據文件大小來查找:

-size [ + | – ] NUM 單位 【k,M,G,c(byte字節)】
-size 6k 表示 在 5k 到 6k 之間的文件大小 【大于5k小于等于6k】
-size -6k 表示 0k到 5k 之間的文件 包括 0 和 5
-size +6k 表示 大于6k的所有文件

根據時間戳來查找:

-atimee [+|-]#以天為單位。

-atime 1 ? ?大于等于一天小于兩天

-atime -1 ? 小于一天到零天

-atime +1 ?大于等于一天的全部

-mtime ? ? ? ? ? ? ? ? -ctime

以“分鐘”為單位: ?-amin ? ? ? ? -mmin ? ? ? ?-cmin

根據權限查找:

-perm ?[/|-] MODE
/644 :任何一類(u,g,o)對象的權限中只要能一位匹配即可,或關系
-440:每一類對象都必須同時擁有指定權限,與關系
0 表示不關注

 

處理動作:

-print:默認的處理動作,顯示至屏幕
-ls:類似于對查找到的文件執行“ls -l”命令
-delete:刪除查找到的文件
-fls file:查找到的所有文件的長格式信息保存至指定文件中
-ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令,對于
每個文件執行命令之前,都會交互式要求用戶確認

-exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令
{}: 用于引用查找到的文件名稱自身
find傳遞查找到的文件至后面指定的命令時,查找到所有符合條件的文件一次性
傳遞給后面的命令
參數替換xargs

由于很多命令不支持管道|來傳遞參數時,我們可以用xargs來傳遞處理上一個命令的參數。

基本上就是,xargs將前面命令產生的參數,一個一個傳給后面的參數。有時候有些命令接受不了過多的參數,命令執行可能會失敗,xargs可以解決。

find和xargs格式:find | xargs COMMAND

 

練習:

1、查找/var目錄下屬主為root,且屬組為mail的所有文件

1

2、查找/var目錄下不屬于root、lp、gdm的所有文件

2

3、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件

3

4.、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件4

5、查找/etc目錄下大于1M且類型為普通文件的所有文件?5

6.、查找/etc目錄下所有用戶都沒有寫權限的文件

6

7.、查找/etc目錄下至少有一類用戶沒有執行權限的文件?7

8.、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件

8

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95832

(0)
顧笙顧笙
上一篇 2018-04-13 14:34
下一篇 2018-04-13 16:24

相關推薦

  • linux 的基礎命令以及快捷鍵的總結

    前兩張給大家介紹了 計算機的最基礎的東西,今天才真正開始學習linux,那么也是linux最基礎的東西。 學習了大約兩周的時間吧!對于我這個愛國者 英語啥也不懂的來說。好想說聲“馬哥 能退錢不,我想回農村”, 當然了 這只是個玩笑話,我是誰,” 打不死的小強”,要么你征服我,要么你被我征服 ,對于我來說,前者別想。 言歸正…

    2018-07-28
  • 運維自動化之ansible

    ansible的基本架構 ? host inventory主機清單 ? playbook相當于腳本, ? modules模塊 ansible工作原理 ? 通過執行命令,或ansible playbook,cmdb ansible配置文件 ? /etc/ansible/ansible.cfg主配置文件,配置ansible工作特性 ? /etc/ansible/…

    Linux筆記 2018-06-03
  • 腳本練習

    腳本編程

    2018-04-15
  • 數組,字符串切片,高級變量

    數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合 數組名和索引 索引:編號從0開始,屬于數值索引 注意:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引 bash4.0版本之后開始支持 bash –version?? 查看bash版本 bash的數組支持稀疏格式(索引不連續) 聲明數組: de…

    Linux筆記 2018-05-13
  • SELinux簡介

    SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的實現,是Linux歷史上最杰出的新安全子系統。NSA是在Linux社區的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,進程只能訪問那些在他的任務中所需要文件。

    2018-05-15
  • Linux的tail 與head 命令

    head命令是用來查看具體文件的前面幾行的內容,具體格式如下: head <filename>: 你可以通過head命令查看具體文件最初的幾行內容,該命令默認是前10行內容,如果你想查看前面更多內容,你可以通過一個數字選項來設置,例如 head -20 install.log 通過上面命令你可以查看install.log這個文件前面20行的內容 …

    2018-04-16
欧美性久久久久