Find命令详解,linux Find命令参数选项、基本用法、高级应用, -exec:對搜索


expression 中可使用的選項有二三十個之多,在此只介紹最常用的部分。

-exec:對搜索的結構指令指定的shell命令。註意格式要正確:"-exec 命令 {} \;"。註意“{}” 與\;之間有空格。

-mount,-xdev : 只檢查和指定目錄在同一個檔案系統下的檔案,避免列出其它檔案系統中的檔案

-amin -n : 在最近的 n 分鐘內被讀取過

-amin +n : 在 n 分鐘之前被讀取過

-anewer file : 比檔案 file 更晚被讀取過的檔案

-atime -n : 在最近的 n 天內讀取過的檔案

-atime +n : 在 n 天前讀取過的檔案

-cmin -n : 在最近的 n 分鐘內被修改過

-cmin +n : 在 n 分鐘前被修改過

-cnewer file :比檔案 file 更新的檔案

-ctime -n : 在最近的 n 天內修改過的檔案

-ctime +n : 在 n 天前修改過的檔案

-empty : 空的檔案-gid n or -group name : gid 是 n 或是 group 名稱是 name

-ipath p,-path p : 路徑名稱符合 p 的檔案,ipath 會忽略大小寫

-name name,-iname name : 檔案名稱符合 name 的檔案。iname 會忽略大小寫

-size n[cwbkMG] : 檔案大小 為 n 個由後綴決定的數據塊。其中後綴含義為:

b: 代表 512 位元組的區塊(如果用戶沒有指定後綴,則默認為 b)

c: 表示字節數

k: 表示 kilo bytes (1024字節)

w: 字 (2字節)

M:兆字節(1048576字節)

G: 千兆字節 (1073741824字節)

-type c : 檔案類型是 c 的檔案。

d: 目錄

c: 字型裝置檔案

b: 區塊裝置檔案

p: 具名貯列

f: 一般檔案

l: 符號連結

s: socket

-pid n : process id 是 n 的檔案

你可以使用 () 將運算式分隔,並使用下列運算。

exp1 -and exp2

expr

-not expr

exp1 -or exp2

exp1,exp2

範例:

將目前目錄及其子目錄下所有延伸檔名是 c 的檔案列出來。

# find . -name "*.c"

將目前目錄其其下子目錄中所有一般檔案列出

# find . -ftype f

將目前目錄及其子目錄下所有最近 20 天內更新過的檔案列出

# find . -ctime -20

查當前目錄下的所有普通文件

#find . -type f -exec ls -l {} \;

DOS 命令 find

名稱:find

作用:在文件中搜索字符串。

用法:FIND [/V] [/C] [/N] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

參數:

/V 顯示所有未包含指定字符串的行。

/C 僅顯示包含字符串的行數。

/N 顯示行號。

/I 搜索字符串時忽略大小寫。

/OFF[LINE] 不要跳過具有脫機屬性集的文件。

"string" 指定要搜索的文字串,

[drive:][path]filename

指定要搜索的文件。

如果沒有指定路徑,FIND 將搜索鍵入的或者由另一命令產生的文字。

Excel 函數 find

Find函數用來對原始數據中某個字符串進行定位,以確定其位置。Find函數進行定位時,總是從指定位置開始,返回找到的第一個匹配字符串的位置,而不管其後是否還有相匹配的字符串。

FIND(find_text,within_text,start_num)

Find_text 是要查找的文本。

Within_text 是包含要查找文本的文本。

Start_num 指定開始進行查找的字符。within_text 中的首字符是編號為 1 的字符。如果忽略 start_num,則假設其為 1。

使用 start_num 可跳過指定數目的字符。例如,假定使用文本字符串“AYF0093.YoungMensApparel”,如果要查找文本字符串中說明部分的第一個“Y”的編號,則可將 start_num 設置為 8,這樣就不會查找文本的序列號部分。FIND 將從第 8 個字符開始查找,而在下一個字符處即可找到 find_text,於是返回編號 9。FIND 總是從 within_text 的起始處返回字符編號,如果 start_num 大於 1,也會對跳過的字符進行計數。

如果 find_text 是空文本 (),則 FIND 則會返回數值1。

Find_text 中不能包含通配符。

如果 within_text 中沒有 find_text,則 FIND返回錯誤值#VALUE!。

如果 start_num 不大於 0,則 FIND返回錯誤值#VALUE!。

如果 start_num 大於 within_text 的長度,則 FIND 返回錯誤值#VALUE!。

應用示例

A2=“廣東省東莞市東城區…”,A3=“黑龍江省哈爾濱市…”; 對含有不同地方的數據,利用“Find”函數,非常簡單地確定“省”出現的位置。

詳細解釋

公式“=FIND(省,A2)”中,“省”表示要查找的文本為“省”,(實際使用中,也可以很長的一串字符)。要找查找的對象是A2單元格的內容“廣東省東莞市東城區…”,因為沒有指定起始位置,所以系統從第一位開始。返回的“3”,表示“省“字在第三位。

而公式“=FIND(省,A3)”中,“黑龍江省哈爾濱市…”則返回4。

與Find類似,Search函數也有相同的功能。它們的區別是,Find區分大小寫,而Search不分大小寫(當被查找的文本為英文時)。

另外,在Excel中,對文本進行處理的很多函數都提供了一個特別用來處理雙字節字符(如中文,日文)的函數,一般是在原函數後加“B”,如FIND,就有一個FINDB。LEFT,相對應的就是LEFTB等。其實,我們在實際應用中,使用不帶“B”的函數就足夠了。如果你想使用帶“B”的函數,則要特別註意,尤其是在組合運用函數時,其中一個函數使用帶“B”的形式,則其它有帶“B”形式的函數,全部都要使用其帶“B”的形式,否則結果極可能是錯的。

实例基本用法

将目前目录及其子目录下所有延伸档名是 c 的文件列出来。

# find . -name "*.c"

将目前目录其其下子目录中所有一般文件列出

# find . -type f

将目前目录及其子目录下所有最近 20 天内更新过的文件列出

# find . -ctime -20

查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:

# find /var/log -type f -mtime +7 -ok rm {} \;

查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

# find . -type f -perm 644 -exec ls -l {} \;

为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:

# find / -type f -size 0 -exec ls -l {} \;

相关内容

    暂无相关文章