文件搜索之find的使用

一.find介紹:

  find是Linxu中一個十分常用的文件查找工具,其工作原理是通過遍歷啟起始路徑下文件層級結構完成的,其特點是查找速度慢,能做到實時查找和精確查找。

二.使用方法:

find  start_path search_conditions  action

1.statr_path:所要查找的文件的起始位置,默認是當前目錄

2.earch_conditions:

(1)根據文件名進行查找:

 -name filename :根據文件名進行查找,filename支持glob風格的文件名通配

 -iname filename:根據文件名進行查找,filename支持glob風格的文件名通配,不過忽略文件名中的大小寫

使用示例:查找當前目錄下以txt結尾的所有文件

find ./ -name "*.txt" -print


(2)根據文件的所屬關系進查找

-user username:查找屬主為username的文件

-group groupname:查找數組為group的文件

-uid UID:查找屬主為UID的文件

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

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

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

使用示例:查找/etc下沒有屬主的文件

find /etc -nouser -print

(3)根據文件類型進行查找

-type filetype

filetype有:

f:普通文件
b:塊設備文件
d:目錄
p:管道文件
l:鏈接文件
c:字符設備文件
s:套接字文件

使用示例:查找/etc目錄下沒有屬主的普通文件

find /etc -nouser -type f -print

(4).根據文件的大小來查找

-size {+|-}#{K,M,G},可以以K,M,G為單位進行查找

#:查找大小為#的文件

+#:查找文件大小至少為#的文件

-#:查找文件大小至多為#的文件

使用示例:查找/etc下沒有屬組,大小為至少10k的普通文件

find /etc -nogroup -size +10k -type f -print

(5)根據時間戳進行查找

-atime day:查找在day天之內被訪問過的文件

-ctime day:查找day天之內有改變的文件

-mtime day:查找day天之內有修改的文件

-amin min:查找min分鐘之內被訪問過的文件

-cmin min:查找min分鐘之內被訪問過的文件

-mmin min:查找min分鐘之內被修改過的文件

使用示例:查找/etc下一個月之內被訪問過,沒有屬主,大小為至多1M的普通文件

find /etc -atime 30 -nouser -size -1M -type f -print

(6)根據文件的權限進行查找

-perm {/|-} mode

mode:查找文件的權限為mode的文件,例如111查找屬,屬組,其他用戶都有執行權限的文件

/mode:查找任何一類用戶滿足其中任何一個權限位的文件,例如/111,查找屬主,屬組,或其他用戶之中任意一個具有執行權限的文件

-mode:查找所有用戶的所有位都滿足的文件,例如-111,查找權限小于111的文件,即每一位用戶權限都不能超過1的文件

使用示例:查找/etc下一個月之內被訪問過,大小為至多1M,屬主,屬組,或其他用戶其中之一能執行的文件

find /etc -atime 30 -size -1M -perm /111 -print

(6).組合測試

-a : 與運算邏輯,默認也是這種組合邏輯

-o:或運算邏輯

-not,!:非運算邏輯

使用示例:查找/etc中沒有屬主或者至少為1M的文件

find /etc -nouser -o -size +1M -print


(7)根據文件是否為空來查找

-empty

使用示例:查找/etc下的空文件

find /etc -empty?。穑颍椋睿?/span>

3.action:默認為打印查找到的文件名,也可以通過 -exec command {} \的方式對查找到的文件進行指定操作

-print:打印查找到的文件名,也是默認處理方式

-ls :將查找到的文件使用ls列出

-exec command {} \ :對查找到的每個文件執行command命令

當所要執行的命令要接受較長的命令參數時,要通過管道送給xargs來執行,例如 find ./ -name "*.txt|xarg?。欤蟆。臁。琛}?。?/span>

使用示例:將/etc下所有以.txt結尾的文件找到并刪除之

find /etc -name "*.txt"?。?xarg rm -f {} \ 

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

(0)
zhangbaozhangbao
上一篇 2016-11-01
下一篇 2016-11-01

相關推薦

  • shell腳本編程之補充知識點

    一、處理用戶輸入   shell中使用read命令來實現與用戶的交互輸入。   格式:read [options] 變量    常用選項:      -p “提示信息”:顯示提示信息;      -t #:等待用戶輸入的秒數;     &n…

    Linux干貨 2016-02-14
  • 如何新增加磁盤分區掛載

    新增磁盤和分區掛載我們先要了解fdisk的參數以及菜單的操作說明,下面是fdisk的參數說明: ?fdisk參數說明: m :顯示菜單和幫助信息 a :活動分區標記/引導分區 d :刪除分區 l :顯示分區類型 n :新建分區 p :顯示分區信息 q :退出不保存 t :設置分區號 v :進行分區檢查 w :保存修改 x :擴展應用,高級功能 1 ?查看磁盤…

    Linux干貨 2018-03-26
  • 文本處理工具練習題(包含正則)

    正則練習題(包含文本處理練習題) 問題 找出ifconfig命令結果中本機的所有IPv4地址  查出分區空間使用率的最大百分比值 查出用戶UID最大值的用戶名、UID及shell類型 查出/tmp的權限,以數字方式顯示 統計當前連接本機的每個遠程主機IP的連接數,并按從大 到小排序 答; ifconfig | grep -o '[0-9]\…

    Linux干貨 2016-08-08
  • http2.4版本基本配置應用

    練習題:分別使用httpd-2.2和httpd-2.4實現; 1、建立httpd服務,要求: (1) 提供兩個基于名稱的虛擬主機: www1.stuX.com,頁面文件目錄為/web/vhosts/www1;錯誤日志為/var/log/httpd/www1/error_log,訪問日志為/var/log/httpd/www1/access_log; www2…

    2017-06-05
  • 初學Linux之程序進程管理工具匯總

    pstree, ps, pidof, pgrep, top, htop, glances, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup ?

    2017-12-16
  • Keepalived實現nginx雙主

    一、架構描述與應用 1. 應用場景 大多數的互聯網公司都會利用nginx的7層反向代理功能來實現后端web server的負載均衡和動靜分離。這樣做的好處是當單臺后端server出現性能瓶頸時可以對其進行橫向擴展從而提高整個系統的并發,同時也可以通過后端server提供的http或tcp監控接口對其進行健康檢查實現自動Failover和Failback。&n…

    Linux干貨 2016-07-16
欧美性久久久久