搜尋

find

$ find directory options expression

directory 目錄 options 選項 expression 表達式

進階搜尋

指定搜尋的起點目錄,檔案名稱、 建立或修改日期、擁有者、群組、權限、大小等

$ find ./ -atime -1 搜尋24小時內取用過的檔案

$ find / -exec {command} \; 搜尋根目錄,並將找到的每一個檔案執行 {command} 指令 \; 為結束

$ find ./ -mmin -5 搜尋5分鐘內更改過的檔案

$ find ./ -mtime -1 搜尋24小時內改過的檔案

$ find ./ -mtime +1 搜尋超過24小時已修改的檔案

$ find ./ -name 'fileName' 搜尋 fileName 檔名

$ find / -type f 搜尋根目錄,類型為檔案

$ find ./ -type f -exec file '{}' \; | egrep 'PNG' | cut -d' ' -f1 遞迴搜尋此目錄下的檔案,類型為 PNG,並只輸出檔案路徑

find . -type f -user {userName} 搜尋持有者為 userName 的檔案

$ finde /home -size +5G 搜尋 /home 目錄,大於 5G 的檔案

grep

$ grep [--line-buffered][-a][-i][-n][-r][-w] path [-e] keyword 過濾輸出或者檔案內容 --line-buffered 每換行就將結果送至標準輸出,否則會等緩衝區滿才送 -a 二進位可執行檔視為文字檔 -i 不分大小寫 -n 顯示行數 -r 遞迴搜尋 -w 比對完整的一個字 path 搜尋路徑 -e 指定正規表示式 keyword 搜尋字串

egrep 等同於 grep -e

$ grep -o 'regular expression' fileName 用只有符合正規表示式的值才會回傳 而不會回傳整行資料 -o 代表只有符合正規表示式的值才會回傳 fileName 檔案名稱

$ grep -Pzo '(?s)regular expression' fileName 功能如上 -z 換行字元也會列入比較 -P Perl 的樣式比對修正符 注意!不是所有版本都有 -P 選項

特殊正規表示式

[:print:] 可顯示字元 A-Z a-z 0-9 等等,不包含控制字元

Perl 正規表示式

(?s) 意思為 . 特殊字元也會比對換行字元

.*? 比對盡可能少的字元

例如

$ ps aux | grep apache2 顯示系統上運行程序的資訊並過濾只包含 apache2

$ grep div /index.html 過濾 index.html 只包含 div 關鍵字

$ grep -i -r ./ -e 'keyword' 不區分大小寫的遞迴搜尋當前目錄下 keyword 字串

$ echo 'a,b,c,d,e' | grep -Po '.*?,' 輸出如下 a, b, c, d,

$ echo 'a,b,c,d,e' | grep -Po '.*,' 輸出如下 a,b,c,d,

locate

$ locate keyword

keyword 關鍵字

搜尋檔案 該指令會搜尋整個檔案系統、定位關鍵字

檔案會被建立在資料庫,一天更新一次,所以剛建立的檔案可能會搜尋不到

whereis

$ whereis binaryFileName

binaryFileName 二進位檔

搜尋二進位檔和操作手冊

which

$ which binaryFileName

binaryFileName 二進位檔

搜尋二進位檔

只搜尋 PATH 變數中的二進位檔

Last updated