10 Linux檔案查詢
阿新 • • 發佈:2020-08-27
1.find查詢概述
為什麼要有檔案查詢,因為很多時候我們可能會忘了某個檔案所在的位置,此時就需要通過find來查詢。find命令可以根據不同的條件來進行查詢檔案,例如:檔名稱、檔案大小、檔案修改時間、屬主屬組、許可權、等等方式。同時find命令是Linux下必須掌握的。
*find 命令的基本語法如下*
命令 | 路徑 | 選項 | 表示式 | 動作 |
---|---|---|---|---|
find | [path…] | [options] | [expression] | [action] |
查詢 | 地區 | 妹紙 | 18-25歲 | 約? |
2.find查詢示例
*以下列出所有find常用的選項*
1.find名稱查詢
#1.建立檔案 touch /etc/sysconfig/network-scripts/{ifcfg-eth1,IFCFG-ETH1} #2.查詢/etc目錄下包含ifcfg-eth0名稱的檔案 [root@lqz ~]# find /etc -name "ifcfg-eth1" #3.-i 忽略大小寫 [root@lqz ~]# find /etc -iname "ifcfg-eth1" #查詢/etc目錄下包含ifcfg-eth名稱所有檔案 [root@lqz ~]# find /etc/ -name "ifcfg-eth*" [root@lqz ~]# find /etc -iname "ifcfg-eth*"
2.find大小查詢
#1.查詢大於5M的檔案
[root@lqz ~]# find /etc -size +5M
#2.查詢等於5M的檔案
[root@lqz ~]# find /etc -size 5M
#3.查詢小於5M的檔案
[root@lqz ~]# find /etc -size -5M
3.find型別查詢
# f 檔案 [root@lqz ~]# find /dev -type f # d 目錄 [root@lqz ~]# find /dev -type d # l 連結 [root@lqz ~]# find /dev -type l # b 塊裝置 [root@lqz ~]# find /dev -type b # c 字元裝置 [root@lqz ~]# find /dev -type c # s 套接字 [root@lqz ~]# find /dev -type s # p 管道檔案 [root@lqz ~]# find /dev -type p
4.find時間查詢
#1.建立測試檔案(後期shell會講) [root@lqz ~]# for i in {01..28};do date -s 201904$i && touch file-$i;done #2.查詢7天以前的檔案(不會列印當天的檔案) [root@lqz ~]# find ./ -iname "file-*" -mtime +7 #3.查詢最近7天的檔案,不建議使用(會列印當天的檔案) [root@lqz ~]# find ./ -iname "file-*" -mtime -7 #4.查詢第7天檔案(不會列印當天的檔案) [root@lqz ~]# find ./ -iname "file-*" -mtime 7 #5.本地檔案保留最近7天的備份檔案, 備份伺服器保留3個月的備份檔案(實際使用方案) find /backup/ -iname "*.bak" -mtime +7 -delete find /backup/ -iname "*.bak" -mtime +90 -delete
5.find使用者查詢
#查詢屬主是jack
[root@lqz ~]# find /home -user jack
#查詢屬組是admin
[root@lqz ~]# find /home -group admin
#查詢屬主是jack, 屬組是admin
[root@lqz ~]# find /home -user jack -group admin
#查詢屬主是jack, 並且屬組是admin
[root@lqz ~]# find /home -user jack -a -group admin
#查詢屬主是jack, 或者屬組是admin
[root@lqz ~]# find /home -user jack -o -group admin
#查詢沒有屬主
[root@lqz ~]# find /home -nouser
#查詢沒有屬組
[root@lqz ~]# find /home -nogroup
#查詢沒有屬主或屬組
[root@lqz ~]# find /home -nouser -o -nogroup
6.find許可權查詢
#精切匹配644許可權
[root@lqz ~]# find . -perm 644 -ls
#包含444許可權即可
[root@lqz ~]# find . -perm -444 -ls
#查詢全域性可寫(每位許可權必須包含w)
[root@lqz ~]# find . -perm -222 -ls
#包含set uid
[root@lqz ~]# find /usr/sbin -perm -4000 -ls
#包含set gid
[root@lqz ~]# find /usr/sbin -perm -2000 -ls
#包含sticky
[root@lqz ~]# find /usr/sbin -perm -1000 -ls
*2.find動作處理,比如查詢到一個檔案後,需要對檔案進行如何處理, find的預設動作是 -print*
動作 | 含義 |
---|---|
列印查詢到的內容(預設) | |
-ls | 以長格式顯示的方式列印查詢到的內容 |
-delete | 刪除查詢到的檔案(僅能刪除空目錄) |
-ok | 後面跟自定義 shell 命令(會提示是否操作) |
-exec | 後面跟自定義 shell 命令(標準寫法 -exec |