文件搜索命令:
1、which /usr/bin/which
顯示系統命令所在目錄,絕對目錄,不能查找文件
which[系統命令]
e.g. whichls
* whereis ls
附:與whereis不同:which會列出這個命令的別名記錄
whereis會顯示出這個命令的幫助文檔所在位置
2、find /usr/bin/find
查找文件或目錄,任何文件皆可,如圖片,壓縮包,網頁。。。
語法:find[搜索路徑][搜索選項]
a)find/etc -name文件名
find/etc -name init //在目錄/etc中查找文件init,最常見
//注意,盡量縮小查找范圍,不要在根目錄下查找
//不然,1、查找速度非常慢;2、占用大量系統資源
查找結果與Windows不同,Windows會把所有包含 init關鍵詞的文件全都列出來而Linux則只會匹配init關鍵詞
使用通配浮:
*:用於匹配任意字符 find/etc -name init* //查找所有以init開頭的文件
find/etc -name * init * // init左右都沒有空格,用於查找所有包含init關鍵詞的文件
?:用於匹配單個字符 find/etc -name init??? //這個文件會有七個字符。
sudofind /etc -name ?init?? // Ubuntu
b)find/etc -size文件大小 //他是以數據塊為單位的!512字節=0.5K
1K=2blocks
100M=?blocks
100M= 102400K = 102400*2blocks
find/etc -size +204800
在/etc下查找大於80MB大於100MB的文件
find/etc -size - 204800
在/etc下查找大於80MB小於100MB的文件
find/etc -size 204800
在/etc下查找等於100MB的文件 //不常用
c)find/etc -user username查找屬於username的文件
find/home/xiaofang/Programme/Data_Structure/ -user xiaofang
d)通過時間值查找:
1、以天為單位: ctime,atime,mtime
2、以分鐘為單位: cmin,amin,mmin //更為常用
c-change改變:表示文件的屬性被修改過,比如:所有者,所屬組,權限
a-access訪問:文件被浏覽過
m-modify修改:文件內容被修改過
-之內,+超過
e)find/etc -type文件類型以文件類型查找
-f二進制文件
-l軟鏈接文件
-d目錄
f)-inum通過i節點進行查找
附:.表示當前目錄
find. -inum 10 -exec rm {} \;
找到i節點為10的文件,並刪除她
find連接符:
1、-a:and邏輯與
-o:or邏輯或
2、-exec
find….. -exec命令 {}\;//固定格式
{}:find的查詢結果
\ :轉義符,使得符號命令使用本身的含義
; :語句結束
find/etc -name inittab -exec ls -l {} \;在/etc下查找inittab文件並顯示其詳細信息
find/home -user sax -exec rm -rf {} \;
刪除用戶sax所有的文件
另: find/home -user sax -ok rm -rf {} \;
刪除用戶sax所有的文件
他會提示你是否確認
3、locate[listfile in databases]: /usr/bin/locate //是Linux所特有的命令
尋找文件或目錄,最好用於快速定文系統命令,配置文件等
locate[搜索關鍵字]//速度很快,但有時候會找不到
//locate是在文件數據庫中查找的,所以速度會很快,但是如果數據庫沒有包含這個文件的話,他就會找不到;
配合命令:updatedb[updatethe slocate database]: /usr/bin/updatedb
建立整個系統目錄文件的數據庫
注意:其執行權限為:root!!!
4、grep: /bin/grep
在文件中搜尋字串匹配的行並輸出
grep[指定字串][源文件]
grepftp /etc/services
附:grep功能特別強大,支持正則表達式,她的更加具體的介紹請參考我的另一篇博文:
《LinuxShell學習筆記 二》