查找文件一般有以下幾個命令
which 查看可執行文件的位置
whereis 查看可執行文件的位置及相關文件
locate 配合數據庫緩存,快速查看文件位置
grep 過濾匹配,他是一個文件搜索工具
find 查找相關文件
which cd 用於查找命令的位置
whereis cd 輸出命令相關的目錄和配置文件
locate 速度快,從數據庫中查找
- 默認數據庫24個小時更新
- 手動更新數據庫 updatedb
當我們在用戶目錄下新建一個文件1.txt, 直接locate 1.txt是查找不到的
這時就要更新一下數據庫updatedb,現在就可以找到創建的文件了
grep用於查找文件中的內容
grep [選項] 字符串 文件名
# 在文件當中匹配符合條件的字符串
選項:
-i 忽略大小寫
-v排除指定字符串(取反)
-n 顯示行號
匹配一個詞:
grep word filename
將文件中,沒有word的那行取出來,並顯示行號
grep -nv word filename
從多個文件裏匹配,並顯示行號:
grep -n word filename1 filenam2 filename3
查看兩個文件中共同存在的行,並顯示行號
grep -nxf 1.txt 11.txt
查看a.txt的文件比b.txt的文件多出來的部分
grep -vxf b.txt a.txt
查找11.txt文件中是否有某些行的開頭是數字1
grep ^1 11.txt
查找11.txt文件中是否有某些行的結尾是數字1
grep 1$ 11.txt 1.txt
以遞歸的方式查找符合條件的文件, 查找/home/sunlizhao目錄下所有包含11111的文件
grep -r 11111 /home/sunlizhao/
find
按照文件名搜索
find /home/ -name ok.txt
- 避免大範圍搜索,會非常耗費系統資源
嚴格區分大小寫,如果要進行模糊查詢,就要用到通配符
* 匹配任意內容
? 匹配任意一個字符
[] 匹配任意一箇中括號內的字符
find /root -iname install.log #搜索名稱不區分大小寫
find /root -user root #按照所有者搜索
find /root -nouser #查找沒有所有者的文件(內核產生或者外來文件)
時間搜索
find /var/log/ -mtime +10
#查找10天前修改的文件
-10 10天內修改文件
10 10天當前修改的文件
+10 10天前修改的文件
- atime 文件訪問時間
- ctime 改變文件屬性
- mtime 修改文件內容
查找某個目錄下四天之內 內容被修改的文件
大小搜索
find . -size 25k
#查找文件大小是25kb文件
-25k 小於25kb的文件
25k 等於25kb的文件
+25k 大於25kb的文件
邏輯搜索
find . -size +25k -a -size -50k
# 查找當前目錄下大於20k並且小於50kb的文件
- -a and邏輯與,兩個條件都滿足
- -o or 邏輯或, 兩個條件滿足一條即可
查找出某個目錄小於1k,大於40M的文件