1. 程式人生 > >文件查找

文件查找

liunx 運維

文件查找

不論是什麽操作系統,我們經常有這樣的需求---查找文件。我們在找文件的時候可以根據很多條件查找比如說:按照文件創建日期、文件大小、文件名等....。那麽下面我跟大家分享下Linux系統下的文件查找。


1.whatis ls
基於數據庫 makewhatis

查看命令所處man手冊所在章節和功能

2.which /bin/ls

查看二進制命令的絕對路徑

3.locate 文件名

a.可以模糊匹配
b.基於數據庫 需要更新數據庫 updatedb
c.快速但需要數據庫


4.find

語法:
find 查詢的路徑 查找的條件 邏輯表達式 連接符

如果不指定路徑就表示當前路徑 在超找的時候是遞歸查找

普通用戶在超找文件的時候需要對目錄有r-x的權限

條件:
-name
-uid n
-gid n
-user uname
-group gname
-readable 可讀
-writable 可寫
-name pattern
-inum n(inode)
-perm mode(=+-)
-size n[cwbkMG]
-type
-amin
-mmin
-cmin
-atmie
-mtime
-ctime


ACTIONS
-delete
-exec command ;
-ok command ;

邏輯表達式
-not expr
! expr
expr1 -and/-a expr2
expr1 -or/-o expr2


1.按照文件名查找
find -name a.txt

2.按照uid查找文件 (文件的擁有者)
find -user redhat (文件的擁有者)
find -uid 0

3.按照gid查找 (文件的所屬組)
find -group IT
find -gid 0

4.-name 模式
find -name a?c ---> ? 代表一個任意字符

5.不區分大小寫
find -iname a.txt

6.按照權限查找
find -perm 111 權限為111的文件
find -perm +444 有1位有4即可 (r)
find -perm -444 至少每位有4,如果有附加其他權限也符合要求

dd if=/dev/zero of=file3 bs=10M count=1 制作10M的文件

7.find -size n[cwbkMG] 按照文件大小查找
find /share -size 3G 等於或者大小相等
find -size +10M 查找大小大於10M的文件
find -size -10M 查找大小小於10M的文件

8.find -type 按照文件類型查找
f 文件
d 目錄
b 塊設備
c 字符型設備
p 管道
s 套接字
l 軟鏈接

9.按照三個時間匹配
find -amin -3 3天前被查看過的文件 3 -3 +3
-mmin -3 3天前被修改過的文件
-cmin -3 3天前被更改過內容的文件
-atime -3 3分鐘前被查看過的文件
-mtime -3 3分鐘前被修改過的文件
-ctime -3 3分鐘前更改過內容的文件

10邏輯表達式

1.用戶為redhat所屬組不是redhat
find /home -user redhat -not -group redhat

2.取反 查找文件類型不是b的文件
find /dev ! -type b

3.查找用戶和組必須是redhat(兩個條件同時滿足)
find /home -user redhat -and -group redhat

4.查找用戶是redhat或者是user1的文件
find /home -user redhat -or -group redhat


5.鏈接符
find / -iname a.txt -exec rm -rf {} \;


-exec 表示鏈接符 \;表示尾

-ok 操作時有提示
-exec 操作時無提示

find / -iname a -ok rm -rf {} \; 有提示


















本文出自 “雲計算” 博客,請務必保留此出處http://huanghaisky.blog.51cto.com/3064496/1925255

文件查找