文件查找
不論是什麼操作系統,我們經常有這樣的需求---查找文件。我們在找文件的時候可以根據很多條件查找比如說:按照文件創建日期、文件大小、文件名等....。那麼下面我跟大家分享下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 {} \; 有提示