一、Linux中的文件查找工具:
grep是一個文本查找工具,而非文件查找工具
locate : 根據資料庫進行查找,不精確,不實時,但是查找快速
find : 實時查找,精確快速
1. locate 的使用格式:
locate keyword(關鍵字)
-c # keyword 統計出關鍵字出現的次數
-n # keyword 只顯示符合關鍵字的前# 行
2. find 的使用格式:
find [dir1,….] [criteria,….](標準) [action….](動作)
(1)[criteria]
-name : 根據文件名查找,嚴格區分大小寫的,支持Globbing
如:find /etc –name “passwd*”
find /etc –name “*passwd*”
find /etc –name “passwd?”
-iname : 不區分文件名中的大小寫
-regex “pattern” :查找文件名中符合pattern的文件
-user username/UID : 查找文件屬主
-group GID : 查找文件屬組
-uid uid : 根據Uid號來查找
-gid gid : 根據gid 號來查找
-nouser :查找沒有屬主的文件
-nogroup :查找沒有屬組的文件
-type :根據文件類型進行查找
f :普通文件
d :目錄文件
l :符號鏈接文件
b :塊設備文件
c : 字元設備文件
p :管道文件
s :套接字文件
查找條件之間也可以進行組合:-a 表示“與” ,-o 表示“或” –not/! 表示“非”
-size # :查找指定文件大小的文件,#可以為
-atime # :根據訪問時間查找,默認時間為“天”
-mtime # : 根據修改時間查找
-ctime # :根據改變時間查找
-perm : 根據許可權查找文件
mode或者/mode : 任何一類用戶某一個許可權位符合條件就行
-mode : 所有類別用戶的所有許可權位符合條件
(2)action 動作,查找到文件后做什麼操作,默認為顯示到屏幕上.
-print :默認將查找到的結果顯示到桌面上
-ls :將查找到的文件內容以長文件格式顯示出來
-ok : 查找到文件后執行別的命令(提示確認信息)
-exec :查找到文件后執行別的命令(不提示確認信息)
-exec rm {} \; :{}為引用前面查找到的文件,此句意思是將查找的內容刪除掉
-ok 和 -exec 後面跟的所要執行命令,在shell中可以對文件發出的任何操作的命令都可以使用,如刪除文件,修改許可權等
3.需要特彆強調的是:
(1)find無法通過管道來實現查找,能通過命令替換實現.
如:
(2)find命令可以管道給xargs
如:find ./ -perm 644 | xargs chmod 755
find命令習題範例:
1、查找/var目錄下屬主為root並且屬組為mail的所有文件;
# find /var -user root -group mail
2、查找
# 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 -a -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文件中;
6、查找/etc目錄下所有用戶都沒有寫許可權的文件,顯示出其詳細信息;
# ls -l `find /etc -not -perm /222`
本文出自 「知識體系」 博客,請務必保留此出處http://4420110.blog.51cto.com/4410110/785413
[火星人 ] Linux中文件查找工具已經有1031次圍觀