歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux基礎(13)文本查找利器find的使用方法

Linux基礎(13)文本查找利器find的使用方法

日期:2017/3/3 11:28:21   编辑:Linux技術

find(locate由於需要更新數據庫,所以不怎麼常用)是Linux下很強大的文件查找命令,具有如下特 點。

1.實時,新增的文件可以立即找到

2.精確

3.支持眾多查找標准,根據用戶的屬主,權限,屬組,時間戳來查找。

4.遍歷指定目錄中的所有文件完成查找,速度較慢。

find的語法規則:

find 查找路徑 查找條件 查找到以後的處理運作

查找路徑:默認為當前目錄

查找條件:默認為指定路徑下的所有文件

處理運作:默認為顯示查找後的結果

###################################################################

查找條件:

-name 'FILENAME':對文件名作精確匹配

文件名通配:

*:任意長度的任意字符

?

[]

-iname 'FILENAME': 文件名匹配時不區分大小寫

-regex PATTERN:基於正則表達式進行文件名匹配

-user USERNAME: 根據屬主查找

-group GROUPNAME: 根據屬組查找

-uid UID: 根據UID查找

-gid GID: 根據GID查找

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

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

-type #按照文件類型進行查找

f: 普通文件

d: 目錄

c:字符設備文件

b:塊設備文件

l:鏈接文件

p:管道文件

s:套接字文件

-size [+|-] #按照文件的大小進行查找 加號代表大於,減號代表小於

#k KB

#M MB

#G GB

查找條件可以進行組合

-a 邏輯與

-o 邏輯或

-not 邏輯非

-mtime 文件的修改時間 #按照時間戳進行查找

-ctime 文件的改變時間

-atime 文件的訪問時間

[+|-]# 加號代表代表某個時間之前,減號代表某個時間以內,單位默認是天

例如,+1代表一天之前,-1代表一天以內

-perm MODE:精確匹配

/MODE: 任意一位匹配即滿足條件

-MODE: 文件權限能完全包含此MODE時才符合條件

-644

644: rw-r--r--

755: rwxr-xr-x

750: rwxr-x---

find ./ -perm -001

##############################################################################

查找完成後的處理操作

運作:

-print: 顯示

-ls:類似ls -l的形式顯示每一個文件的詳細

-ok COMMAND {} \; 每一次操作都需要用戶確認

-exec COMMAND {} \;#注意,後面的\;不能省略,代表命令的結束。並且\;與{}之間有一個空格。

############################################################################

下面給出幾個例子:

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

find /var -user root -group mail

2、查找/usr目錄下不屬於root,bin,或student的文件;

find /usr -not -user root -a -not -user bin -a -not -user student

find /usr -not \( -user root -o -user bin -o -user student \)

3、查找/etc目錄下最近一周內內容修改過且不屬於root及student用戶的文件;

find /etc -mtime -7 -not \ ( -user root -o -user student \)

find /etc -mtime -7 -not -user root -a -not -user student

4、查找當前系統上沒有屬主或屬組且最近1天內曾被訪問過的文件,並將其屬主屬組均修改為root;

find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;

5、查找/etc目錄下大於1M的文件,並將其文件名寫入/tmp/etc.largefiles文件中;

find /etc -size +1M >> /tmp/etc.largefiles

6、查找/etc目錄下所有用戶都沒有寫權限的文件,顯示出其詳細信息;

find /etc -not -perm /222 -ls

本文出自 “厚積薄發” 博客,請務必保留此出處http://joedlut.blog.51cto.com/6570198/1826592

Copyright © Linux教程網 All Rights Reserved