每天學點linux之-locate,whereis,which,find,

文件搜索命令

locate 文件名在後臺數據庫中按文件名搜索,速度更快
這個數據庫是/var/lib/mlocate,它的更新速率默認是一天一次,Linux版本的不同,名字不同,Mac下在/var/db/locate.datebase
可以使用updatedb命令強制更新數據庫,Mac下是sudo /usr/libexec/locate.updatedb,根據距上次更新後更改的文件數目多少,速度不同
只能通過文件名來搜索
遵守/etc/updatedb.conf配置文件裏的篩選規則,所以即使你更新了數據庫也不一定能locate到所要尋找的文件

搜索命令的命令

  • whereis【選項】命令名
    -b 只查找可執行文件
    -m 只查找幫助文件
    Mac用不了這兩個選項

  • which 命令名
    可以查看別名,Mac也沒這個功能
    cd命令是shell自帶的,找不到,whereiswhich能找到的都是後來安裝的命令

PATH環境變量

Linux從PATH定義的路徑中找尋命令,所有命令不用麻煩打絕對路徑
echo $PATH查看路徑,:隔開

文件搜索命令

find【搜索範圍】【搜索條件】
-name 按照文件名搜索
-iname 文件名不區分大小寫

Linux中的通配符

#find是在系統當中搜索符合條件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配的。
* 匹配任意內容(任意多個字符)
? 匹配任意一個字符
[] 匹配任意一箇中括號內的字符
find desktop/ -name "ab[cd]"匹配abc或abd

按照所有者來搜索

-user 按照所有者搜索,如find /root -user root是找root目錄下所有者爲root的文件
-nouser 是找沒有所有者的文件,如find /root -nonuser是找root目錄下沒有所有者的文件

按照時間來搜索

find 【搜索範圍】 -(X)time (+/-)時間
find /root -mtime +10是查找十天前修改的文件
+10 10天前修改的文件
10 10天當天修改的文件
-10 10天內修改的文件
atime 訪問文件的時間
ctime 改變文件屬性的時間
mtime 修改文件內容的時間

按照大小來搜索

find 【搜索範圍】-size (+/-)X(k/M)
小寫k是kB,大寫M是MB
find /root -size +10k是查找root目錄下大小大於10kB的文件

按照i節點來搜索

find 【搜索範圍】-inum 【i節點號】
ls -i 【文件名】正好相反

多條件查詢

find /root -size +20k -a -size -50k查找20~50kB大小的文件
find /root -size -20k -o -size +50k查找小於20或者大於50kB的文件
find /root -size +20k -a -size -50k -exec ls -lh {}\;查找20~50kB的文件,並列出詳細信息
-exec/-ok 命令 {} \;用來繼續處理搜索到的文件
find /root -inum 606838 -exec rm -rf {} \;找到i節點號爲606838的文件然後刪


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章