Linux常用命令(第二版) --文件搜索命令
文件搜索命令
1、which /usr/bin/which #顯示系統命令所在目錄,絕對目錄,不能查找文件
格式:which?[系統命令]
e.g. which?ls
?
附-whereis:也可以查找到命令的絕對路徑
與whereis不同,which會列出這個命令的別名記錄,而whereis會顯示出這個命令的幫助文檔所在位置
2、find /usr/bin/find #查找文件或目錄,任何文件皆可,如圖片,壓縮包等
語法:find?[搜索路徑]?[搜索選項]?filename
a) find?/etc?-name?文件名 #-name?最常見的選項
find?/etc?-name?init //?在目錄/etc中查找文件init文件
注意:
1-盡量縮小查找范圍,不要在根目錄下查找,不然:1、查找速度非常慢;2、占用大量系統資源.
2-占用系統資源越少越好,而且盡量在服務器壓力較小時用find進行查找.
3-find?..?-name?查找結果與Windows不同,如:Windows會把所有包含init關鍵詞的文件全都列出來而Linux則只會匹配init關鍵詞
4-使用通配符:
*:用于匹配任意字符
find?/etc?-name?init* #查找所有以init開頭的文件
find?/etc?-name?*init*? #init左右都沒有空格,用于查找所有包含init關鍵詞的文件
?:用于匹配單個字符
find?/etc?-name?init??? #這個文件會有七個字符。
find?/etc?-name??init???
?
b)find?/etc?-size?文件大小?
#他是以數據塊為單位的!512字節?=?0.5KB,?1K?=?2Blocks
?
100M=?blocks
100M?=?102400K?=?102400*2blocks
E.g
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.g.
find?/etc?-mtime?-1
find?/etc?-amin?-60
find?/home?-cmin?-120
?
e)find?/etc?-type?文件類型 #根據文件類型查找
f 二進制文件
l 軟鏈接文件
d 目錄
E.g.
find?/etc?-type?f
find?/etc?-type?l
?
f)-inum #根據i節點進行查找
?
E.g.
touch?--?-abc #刪除:rm?--?-abc
touch?“a?b” #刪除:rm?“a?b”
find?.?-inum?159341
find?.?-inum?159341?-exec?rm?-f?{}?\; #找到i節點為159341的文件,并刪除它
?
附-find連接符:
1、 -a:and 邏輯與
-o:or 邏輯或
E.g.
find?/etc?-size?+163840?-a?-size?204800 #查找>80M,<100M的文件
find?/etc?-name?init*?-a?-type?f #查找名為init并且為二進制的文件,并不包含目錄
?
2、find?…..?-exec?命令?{}?\; #固定格式,只能這樣來寫
{} :find的查詢結果
\???:轉義符-使得符號命令使用本身的含義
; :語句結束
?
e.g.
find?/etc?-name?inittab?-exec?ls?-l?{}?\;?
#在/etc下查找inittab文件并顯示其詳細信息
find?/home?-user?sax?-exec?rm?-rf?{}?\;
#刪除用戶sax所有的文件
find?/home?-user?sax?-ok?rm?-rf?{}?\; #-ok連接符
#刪除用戶sax所有的文件,他會提示你是否確認
find?/etc?-name?init*?-ok?rm?-rf?{}?\;
?
?
3、locate[list?file?in?databases]: /usr/bin/locate
說明:
#是Linux所特有的命令,尋找文件或目錄,最好用于快速定位系統命令,配置文件等
#雖然搜索速度很快,但有時候會找不到
#locate是在文件數據庫中查找的,所以速度會很快
#但是如果數據庫沒有包含這個文件的話,他就會找不到;
?
格式:locate?[搜索關鍵字]?
配合:updatedb?[update?a?database?for?mlocate]: /usr/bin/updatedb
#建立整個系統目錄文件的數據庫?
注意:其執行權限為:root!!!
?
4、grep: /bin/grep #在文件中搜尋字串匹配的行并輸出
格式: grep?[指定字串]?[源文件]?
E.g. grep?ftp?/etc/services?
?
附:grep功能特別強大,支持正則表達式,她的更加具體的介紹請參考我的另一篇博文:
《四天精通Shell編程(二)》
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的Linux常用命令(第二版) --文件搜索命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地址和指针的概念
- 下一篇: 简单几步教你去除开机出现扫描硬盘!