1. 程式人生 > >使用find根據文件內容查找文件名

使用find根據文件內容查找文件名

soft find指令 匹配 pan -name 表達式 {} -type 塊設備

find命令用法:

  • 語法:
1 find (選項) (參數)
  • 常用選項:
1 -exec<執行命令>: 假設find指令的回傳值為True,就執行該指令;
2 -ls: 假設find指令的回傳值為True,就將文件或目錄名稱列出到標準輸出;
3 -name<範本樣式>: 指定字符串作為尋找文件或目錄的範本樣式;
4 -path<範本樣式>: 指定字符串作為尋找目錄的範本樣式;
5 -size<文件大小>: 查找符合指定的文件大小的文件;
6 -type<文件類型>: 只尋找符合指定的文件類型的文件; 
  • 參數:起始目錄--查找文件的起始目錄
  • 實例:

列出當前目錄及子目錄下的所有文件和文件夾

1 find .

在/home目錄下查找以.txt結尾的文件名(使用 -iname 選項忽略大小寫)

1 find /home -name "*.txt"

在當前目錄及子目錄下查找所有以.txt和.pdf結尾的文件名

1 find . -name "*.txt" -o -name "*.pdf"

匹配文件路徑或者文件

1 find /usr/ -path "*local*"

基於正則表達式匹配文件路徑 (-iregex 忽略大小寫)

1 find . -regex ".*\(\.txt\|\.pdf\)$"

否定參數:找出/home下不是以.txt結尾的文件

1 find /home ! -name "*.txt"

根據文件類型查找

1 find . -type 類型參數

類型參數列表:

f 普通文件

l 符號鏈接

d 目錄

c 字符設備

b 塊設備

s 套接字

p Fifo

根據文件大小查找

1 find . -size 文件大小單元

文件大小單元列表:

b 塊(512字節)

c 字節

w 字(2字節)

k 千字節

M 兆字節

G G字節

查找大於10k的文件

1 find . -size +10k

借助 -exec 選項與其他命令結合使用

找出/home目錄下所有的.txt文件並刪除 (-ok與-exec命令相同,但會給出提示是否執行相應操作)

1 find /home -name ".txt" -exec rm {} \;

用腳本執行多條指令

1 -exec ./rm_txt.sh {} \;

使用xargs工具

查找包含字符‘abc‘的文件名

1 find . -type f | xargs grep -l abc

使用find根據文件內容查找文件名