用於在檔案樹中查詢檔案,並作出相應的處理。
命令格式 :find pathname -options [-print -exec -ok ...]
命令引數:pathname: find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print: find命令將匹配的檔案輸出到標準輸出。
-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' \;,注意和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。
命令選項:例項:-name 按照檔名查詢檔案
-perm 按檔案許可權查詢檔案 (如果想查詢不是這個許可權的 : !-perm )
-user 按檔案屬主查詢檔案
-group 按照檔案所屬的組來查詢檔案。
-type 查詢某一型別的檔案,諸如:
b - 塊裝置檔案
d - 目錄
c - 字元裝置檔案
l - 符號鏈結檔案
p - 管道檔案
f - 普通檔案
-size n :[c] 查詢檔案長度為n塊檔案,帶有c時表檔案位元組大小
-amin n 查詢系統中最後n分鐘訪問的檔案
-atime n 查詢系統中最後n*24小時訪問的檔案
-cmin n 查詢系統中最後n分鐘被改變檔案狀態的檔案
-ctime n 查詢系統中最後n*24小時被改變檔案狀態的檔案
-mmin n 查詢系統中最後n分鐘被改變檔案資料的檔案
-mtime n 查詢系統中最後n*24小時被改變檔案資料的檔案
(用減號-來限定更改時間在距今n日以內的檔案,而用加號+來限定更改時間在距今n日以前的檔案。 )
-maxdepth n 最大查詢目錄深度
-prune 選項來指出需要忽略的目錄。在使用-prune選項時要當心,因為如果你同時使用了-depth選項,那麼-prune選項就會被find命令忽略
-newer 如果希望查詢更改時間比某個檔案新但比另乙個檔案舊的所有檔案,可以使用-newer選項
一 :
(1)查詢 48 小時內修改過的檔案
find -atime -2
(2)在當前目錄查詢 以 .log 結尾的檔案。 . 代表當前目錄
find ./ -name '*.log'
(3)查詢 /opt 目錄下 許可權為 777 的檔案
find /opt -type f -perm 777 (檔案 :-type f)
(4)查詢 /opt 目錄下 許可權不為 777 的檔案
find /opt -type f !-perm 777
(5)查詢大於 1k 的檔案
find -size +1000c
查詢等於 1000 字元的檔案
find -size 1000c
查詢等於 1000 字元的檔案
find -size 1000c
二 :例項:-exec 引數後面跟的是 command 命令,它的終止是以 ; 為結束標誌的,所以這句命令後面的分號是不可缺少的,考慮到各個系統中分號會有不同的意義,所以前面加反斜槓。{} 花括號代表前面find查詢出來的檔名。
(5)在當前目錄中查詢更改時間在10日以前的檔案並刪除它們(無提醒)
find . -type f -mtime +10 -exec rm -f {} \;
(6)當前目錄中查詢所有檔名以.log結尾、更改時間在5日以上的檔案,並刪除它們,只不過在刪除之前先給出提示。 按y鍵刪除檔案,按n鍵不刪除
find . -name '*.log' mtime +5 -ok -exec rm {} \;
(7)當前目錄下查詢檔案名以 passwd 開頭,內容包含 "pkg" 字元的檔案
find . -f -name 'passwd*' -exec grep "pkg" {} \;
(8)用 exec 選項執行 cp 命令
find . -name '*.log' -exec cp {} test3 \;
三 :例項:-xargs find 命令把匹配到的檔案傳遞給 xargs 命令,而 xargs 命令每次只獲取一部分檔案而不是全部,不像 -exec 選項那樣。這樣它可以先處理最先獲取的一部分檔案,然後是下一批,並如此繼續下去。
(9)查詢當前目錄下每個普通檔案,然後使用 xargs 來判斷檔案型別
find . -type f -print | xargs file
(10)查詢當前目錄下所有以 js 結尾的並且其中包含 'editor' 字元的普通檔案
find . -type f -name "*.js" -exec grep -lf 'ueditor' {} \;
find -type f -name '*.js' | xargs grep -lf 'editor'
(11)利用 xargs 執行 mv 命令
find . -name "*.log" | xargs -i mv {} test4
(12)用 grep 命令在當前目錄下的所有普通檔案中搜尋 hostnames 這個詞,並標出所在行:
find . -name \*(轉義) -type f -print | xargs grep -n 'hostnames'
(13)查詢當前目錄中以乙個小寫字母開頭,最後是 4 到 9 加上 .log 結束的檔案:
find . -name '[a-z]*[4-9].log' -print
(14)在 test 目錄查詢不在 test4 子目錄查詢
find test -path 'test/test4' -prune -o -print
(15)例項1:查詢更改時間比檔案 log2012.log新但比檔案 log2017.log 舊的檔案
find -newer log2012.log ! -newer log2017.log
Linux命令 Sed命令引數
乙個命令寫了半天總是不對,原來時間久了就忘掉了。收藏自 table of contents 1.sed簡介 2.定址 3.sed命令 4.選項 5.元字符集 6.例項 7.指令碼 8.小技巧 可以通過定址來定位你所希望編輯的行,該位址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍 包括...
linux常用檔案處理命令 課堂筆記
1 命令 ls 英文 list 路徑 bin ls 功能 顯示目錄檔案 語法 ls 選項 ald 檔案或目錄 a 顯示所有檔案,包括隱藏檔案 l 詳細資訊顯示 d 檢視目錄屬性 d rwr r x r x 2 root root 4096 12 01 20 52 2 硬連線數 所有者 所屬組 檔案大...
Linux常用許可權處理命令 課堂筆記
命令 su 使用者名稱 功能 切換使用者 命令 exit 功能 退出 使用者 操作符號 許可權 u 所有者 增加許可權 r 可讀 4 g 所屬組 去掉許可權 w 可寫 2 o 其他人 授權許可權 x 可執行 1 檔案目錄許可權總結 代表符 許可權 對檔案的含義 對目錄的含義 r 讀許可權 可以檢視檔...