歡迎您光臨本站 註冊首頁

Linux中文件查找工具

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

一、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 # :查找指定文件大小的文件,#可以為

k/M/G

-atime # :根據訪問時間查找,默認時間為“天”

-mtime # 根據修改時間查找

-ctime # :根據改變時間查找

-perm 根據許可權查找文件

mode或者/mode : 任何一類用戶某一個許可權位符合條件就行

-mode : 所有類別用戶的所有許可權位符合條件

2action 動作,查找到文件后做什麼操作,默認為顯示到屏幕上.

-print :默認將查找到的結果顯示到桌面上

-ls :將查找到的文件內容以長文件格式顯示出來

-ok 查找到文件后執行別的命令(提示確認信息)

-exec 查找到文件后執行別的命令(不提示確認信息)

-exec rm {} \; {}為引用前面查找到的文件,此句意思是將查找的內容刪除掉

-ok -exec 後面跟的所要執行命令,在shell中可以對文件發出的任何操作的命令都可以使用,如刪除文件,修改許可權等

3.需要特彆強調的是:

1find無法通過管道來實現查找,能通過命令替換實現.

如:

ls -l `find /tmp -user redhat`

2find命令可以管道給xargs

如:find ./ -perm 644 | xargs chmod 755

find命令習題範例:

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目錄下最近一周內內容修改過且不屬於rootstudent用戶的文件;

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

# find /etc -mtime -7 -a -not \( -user root -o -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 -exec basename {} >> /tmp/etc.largefiles

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

# ls -l `find /etc -not -perm /222`

本文出自 「知識體系」 博客,請務必保留此出處http://4420110.blog.51cto.com/4410110/785413


[火星人 ] Linux中文件查找工具已經有1031次圍觀

http://coctec.com/docs/linux/show-post-47197.html