shell指令碼 find命令

2021-05-28 06:13:36 字數 2298 閱讀 9184

find命令用於查詢,功能很強大,格式如下:

find pathname -options [-print -exec -ok ...]
pathname: find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。

-print: find命令將匹配的檔案輸出到標準輸出。

-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' \;,注意和\;之間的空格。

-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。

命令選項很多,常用如下:

-name

按照檔名查詢檔案。

-perm

按照檔案許可權來查詢檔案。

-prune

使用這一選項可以使find命令不在當前指定的目錄中查詢,如果同時使用-depth選項,那麼-prune將被find命令忽略。

-user

按照檔案屬主來查詢檔案。

-group

按照檔案所屬的組來查詢檔案。

-mtime -n +n

按照檔案的更改時間來查詢檔案, - n表示檔案更改時間距現在n天以內,+ n表示檔案更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。

-nogroup

查詢無有效所屬組的檔案,即該檔案所屬的組在/etc/groups中不存在。

-nouser

查詢無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。

-newer file1 ! file2

查詢更改時間比檔案file1新但比檔案file2舊的檔案。

-type

查詢某一型別的檔案,諸如:

b - 塊裝置檔案。

d - 目錄。

c - 字元裝置檔案。

p - 管道檔案。

l - 符號鏈結檔案。

f - 普通檔案。

-size n:[c] 查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。

-depth:在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢。

-fstype:查詢位於某一型別檔案系統中的檔案,這些檔案系統型別通常可以在配置檔案/etc/fstab中找到,該配置檔案中包含了本系統中有關檔案系統的資訊。

-mount:在查詢檔案時不跨越檔案系統mount點。

-cpio:對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。-amin n查詢系統中最後n分鐘訪問的檔案-atime n查詢系統中最後n*24小時訪問的檔案-cmin n查詢系統中最後n分鐘被改變檔案狀態的檔案-ctime n查詢系統中最後n*24小時被改變檔案狀態的檔案-mmin n查詢系統中最後n分鐘被改變檔案資料的檔案-mtime n查詢系統中最後n*24小時被改變檔案資料的檔案

乙個find命令shell指令碼小例子如下,查詢當前目錄下某個字串(通過引數形式傳入指令碼):

#!/bin/sh

for afile in `find ./ -name "*"`; do

#echo $afile;

if [ -f "$afile" ]; then

wordnum=`cat $afile|grep $1 |wc -l`;

if [ "$wordnum" -ge 2 ]; then

echo $afile;

fifi

done

假如shell指令碼命名find_word.sh,同時賦予當前使用者可執行許可權,執行如下命令:

[@131.169 test]# find_word.sh ni

查詢含有 ni 的檔案

shell指令碼之find

find pathname options print exec ok 引數pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄。print find命令將匹配的檔案輸出到標準輸出。exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的...

Shell指令碼四 find

3 使用exec或ok來執行shell命令 4 find命令結合exec,ok的例子 5 find命令結合xargs的例子 find pathname options print exec ok 引數說明 pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄,...

Shell指令碼中find和grep命令的區別

在shell指令碼中find 和 grep 同樣都是搜尋命令。find 命令用於在系統中搜尋符合條件的檔名,如果需要模糊查詢,則使用萬用字元進行匹配。搜尋時檔名是完全匹配的。例如 root localhost touch abc 建立檔案abc root localhost touch abcd 建...