linux下的find命令的查詢功能十分強大,下面詳細介紹find的大多數用法:
工作方式:沿著檔案層次結構向下遍歷,匹配符合條件的檔案,並執行相應的操作。
1.根據檔案時間搜尋
atime(access time,訪問時間):即上次訪問這個檔案的時間
mtime(modification time,修改時間):即檔案內容上次發生改變的時間
ctime(change time,改變時間):檔案屬性(比如許可權)修改的時間,一般mtime改變時ctime也會改變
-atime、-mtime、-ctime都可作為find的時間引數,它們帶上+n或-n表示n天之前或n天之內被更動過的檔案檔名。
示例:找出系統上3天內有更動內容(mtime)的檔案檔名:
find /var -mtime -3
剛好在3天前有更動內容的檔案檔名:
find /var -mtime 3
大於3天前有更動內容的檔案檔名:
find /var -mtime +3
這些的時間是基於天的,還有基於分鐘的:
-amin、-mmin、-cmin
用法與上面相同。
find的另乙個漂亮的特性是-newer引數,我們可以指定乙個用於比較時間戳的參考檔案,然後找出比參考檔案更新的所有檔案。
2.根據使用者或者組名搜尋
-user/-group:按照檔案所屬的主人/組查詢檔案
-nouser/-nogroup:尋找檔案的擁有者/群組不存在/etc/passwd或/etc/group的人或檔案
示例:查詢/home下屬於hm的檔案
find /home -user hm
查詢系統中不屬於任何人的檔案
find / -nouser
3.根據檔案許可權及名稱搜尋
-name filename:查詢檔案名為filename的檔案
-perm mode:查詢檔案許可權為mode的檔案,mode為類似chmod的屬性值
示例:查詢許可權為644的檔案
find . -perm 644
4.根據檔案型別搜尋
linux下的檔案型別:
普通檔案 : f
符號檔案 : l
目錄 : d
字元裝置 : c
塊裝置 : b
套接字 : s
fifo(管道檔案) : p
-type type:查詢檔案名的型別為type的 如:
find . -type f
5.根據檔案大小搜素
-size[+ -] size:搜尋比size要大(+)或小(-)的檔案。
示例:查詢比50kb要大的檔案
find . -size +50k
除了k之外,還有其他檔案大小單元
b——塊(512位元組)
c——位元組
w——字
k——千位元組
m——兆位元組
g——吉位元組
6.進行額外的動作
示例:查詢根目錄下大於555位元組小於580位元組的檔案
find /root -size -555c -size +580c -exec ls -ld {} \;
7.否定引數
用" ! "作為否定引數
示例:搜尋當前目錄所有不以.txt結尾的檔案
find . ! -name ".txt"
8.find與xargs結合
xargs:將標準輸入轉換成命令列引數
示例:將匹配到的檔案刪除
find . -type f -name "*.txt" |xargs -0 rm -f
9.刪除匹配的檔案
-delete可以實現
find . -type f -name "*.swp" -delete
10.根據目錄的深度搜尋
-maxdepth/-mindepth:最大/最小深度限制,1表示只在當前目錄,2表示向下兩級等等
示例:1.
只列出當前目錄下的所有普通檔案
2. 列出距當前目錄至少兩個子目錄的所有檔案
1. find . -maxdepth 1 -type f
2. find . -mindepth 2 -type f
find命令詳解
2009 07 30 17 20 34 閱讀255 字型大小 大 中小訂閱 find命令 一 原理 功能 在目錄結構中搜尋檔案,並執行指定的操作。此命令提供了相當多的查詢條件,功能很強大。語法 find 起始目錄 尋找條件 操作 1 查詢目錄 find home type d name quejin...
find命令詳解
1 列出當前某個目錄的檔案和目錄 find 2 匹配所有以.txt結尾的檔名 find home root name txt print 3 多個條件 find name txt o name pdf print find regex py sh 4 否定引數 find name txt print...
find命令詳解
查詢檔案 find type f 查詢目錄 find type d 查詢名字為test的檔案或目錄 find name test 查詢名字符合正規表示式的檔案,注意前面的 查詢到的檔案帶有目錄 find regex so.gz 查詢目錄並列出目錄下的檔案 為找到的每乙個目錄單獨執行ls命令,沒有選項...