find命令詳解

2021-07-11 21:54:28 字數 2424 閱讀 5587

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命令,沒有選項...