linux 命令與檔案的查詢
查命令: which ; type
查檔案: whereis 與 locate 利用資料庫 ,find 掃描磁碟
which
根據$PATH變數定義的目錄,來查詢可執行命令,並輸出完整路徑
選項或引數:
-a :將所有由 PATH 目錄中可以找到的命令均列出,而不止第一個被找到的命令名稱
但which無法查出bash內建命令如cd,這個可以通過 type cd(cd is a shell builtin)
type
type命令用來顯示指定命令的型別。一個命令的型別可以是如下之一
- alias 別名
- keyword 關鍵字,Shell保留字
- function 函式,Shell函式
- builtin 內建命令,Shell內建命令
- file 檔案,磁碟檔案,外部命令
- unfound 沒有找到
它是Linux系統的一種自省機制,知道了是那種型別,我們就可以針對性的獲取幫助。比如內建命令可以用help命令來獲取幫助,外部命令用man或者info來獲取幫助。
常用引數
type命令的基本使用方式就是直接跟上命令名字。
type -a可以顯示所有可能的型別,比如有些命令如pwd是shell內建命令,也可以是外部命令。
type -p只返回外部命令的資訊,相當於which命令。
type -f只返回shell函式的資訊。
type -t 只返回命令的型別
whereis [-bmsu] 檔案或目錄名
選項與引數:
-b :只找 binary 格式的檔案
-m :只找在說明檔 manual 路徑下的檔案
-s :只找 source 來原始檔
-u :搜尋不在上述三個專案當中的其他特殊檔案
locate [-ir] 部分名稱
選項與引數:
-i :忽略大小寫的差異;
-r :後面可接正規表示法的顯示方式
whereis 和 locate 比較適用找一些固有的檔案
都是通過已建立的資料庫 /var/lib/mlocate/的資訊來進行查詢
並不是真正去掃描磁碟,所以速度很快,但查詢結果不一定準確
會發現可以找到已經刪除的檔案,或mv重新命名但查出的是原檔名,或找不到剛剛建立的檔案
因為mlocate,一般每天升級資料庫一次,可locate mlocate,發現/etc/cron.daily/mlocate.cron
當然也可手動升級updatedb,但是掃描磁碟很慢,建議慎重
updatedb:根據 /etc/updatedb.conf 的配置去搜尋系統硬碟內的檔名,並升級 /var/lib/mlocate 內的資料庫檔案;
find
-name檔案
告訴find要找什麼檔案;要找的檔案包括在引號中,可以使用萬用字元(*和?)
告訴find要找什麼檔案;要找的檔案包括在引號中,可以使用萬用字元(*和?)
-type x
匹配所有型別為x的檔案。x是c(字元特殊),b(塊特殊),d(目錄),p(有名管道),l(符號連線),s(套接檔案)或f(一般檔案)
匹配所有型別為x的檔案。x是c(字元特殊),b(塊特殊),d(目錄),p(有名管道),l(符號連線),s(套接檔案)或f(一般檔案)
-user使用者號
匹配所有使用者序列號是前面所指定的使用者序列號的檔案,可以是數字型的值或使用者登入名。
匹配所有使用者序列號是前面所指定的使用者序列號的檔案,可以是數字型的值或使用者登入名。
-print
顯示整個檔案路徑和名稱。一般來說,都要用-print,如果沒有這個引數,則find命令進行所要求的搜尋是沒有顯示結果的
顯示整個檔案路徑和名稱。一般來說,都要用-print,如果沒有這個引數,則find命令進行所要求的搜尋是沒有顯示結果的
find的使用例項:
$ find . -name 'my*'
搜尋當前目錄(含子目錄,以下同)中,所有檔名以my開頭的檔案。
$ find . -name 'my*' -ls
搜尋當前目錄中,所有檔名以my開頭的檔案,並顯示它們的詳細資訊。
$ find . -type f -mmin -10
$ find . -name 'my*'
搜尋當前目錄(含子目錄,以下同)中,所有檔名以my開頭的檔案。
$ find . -name 'my*' -ls
搜尋當前目錄中,所有檔名以my開頭的檔案,並顯示它們的詳細資訊。
$ find . -type f -mmin -10
搜尋當前目錄中,所有過去10分鐘中更新過的普通檔案。如果不加-type f引數,則搜尋普通檔案+特殊檔案+目錄。
[acm][min/time]
a -access ;c -changed(status) ;m -modified
min 分鐘 ; time 天數
amin n 查詢n分鐘以前被訪問過的所有檔案.
atime n 查詢n天以前被訪問過的所有檔案.
cmin n 查詢n分鐘以前檔案狀態被修改過的所有檔案.
ctime n 查詢n天以前檔案狀態被修改過的所有檔案.
mmin n 查詢n分鐘以前檔案內容被修改過的所有檔案.
mtime n 查詢n天以前檔案內容被修改過的所有檔案.
atime n 查詢n天以前被訪問過的所有檔案.
cmin n 查詢n分鐘以前檔案狀態被修改過的所有檔案.
ctime n 查詢n天以前檔案狀態被修改過的所有檔案.
mmin n 查詢n分鐘以前檔案內容被修改過的所有檔案.
mtime n 查詢n天以前檔案內容被修改過的所有檔案.
find / -mtime 4 與 find / -mtime +/-4
--------------------------------------------->
| | | | | | | |
7 6 5 4 3 2 1 now
[root@localhost eg]# find / -name 'add.c' -exec ls -l {} \;
-rw-r--r-- 1 root root 68 May 17 14:53 /root/Documents/eg/add.c
-rw-r--r-- 1 root root 68 May 17 14:53 /root/Documents/eg/add.c
{}是代表find的結果
-exec 一直到 \; 是關鍵字,代表 find 額外動作的開始 (-exec) 到結束 (\;) ,在這中間的就是 find 命令內的額外動作
;因為可能有特殊意義,所以反斜槓\跳脫特殊字元
2.find xargs
$ find / -user oracle -mmin -2 -print 1>~/x3 2>/dev/null
$ find / -name 'inventory' -type d -print 1>~/find2.t 2>/dev/null
$ find . -mmin +720 -print| xargs rm -rf #+720 720m之前, -720 表示720m以內...
嘛,要刪之前最好再看一下...
$ find . -mmin +720 -print|ll
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28859270/viewspace-774995/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux 查詢檔案命令 findLinux
- 檔案查詢命令
- Linux 檔案查詢Linux
- Linux查詢大檔案Linux
- 檔案編輯、打包壓縮與查詢命令
- Linux檔案查詢工具的探索Linux
- Linux使用者資訊查詢及磁碟與檔案系統管理命令!Linux
- python檔案查詢之find命令Python
- 在Linux中,如何使用grep命令查詢檔案中的內容?Linux
- Linux常用命令之檔案查詢which、find、locate命令講解Linux
- Linux 查詢檔案的正確方式Linux
- Find命令查詢最近幾天修改的檔案
- linux 中根據檔案的大小進行檔案的查詢Linux
- linux下查詢命令的技巧Linux
- findmnt命令查詢已掛載的檔案系統
- Linux中查詢最大檔案的方法有哪些?Linux
- 除了find命令,還有這麼多檔案查詢命令!
- Linux 學習筆記--環境變數與檔案查詢Linux筆記變數
- 檔案查詢
- Linux系列之查詢命令Linux
- linux檔案與目錄管理命令Linux
- Linux 裝置檔案/dev/*詳解、查詢Linuxdev
- 如何在Linux中查詢一個檔案Linux
- 檔案批次查詢複製匯出,按檔名批次查詢檔案,按檔案內容批次查詢檔案
- 如何在 Linux 中查詢最大的 10 個檔案Linux
- Linux下如何查詢檔案或目錄?常用命令是什麼?Linux
- linux每日命令(25):Linux檔案型別與副檔名Linux型別
- 【Linux命令】在當前目錄下查詢出現特定字串的檔案位置資訊Linux字串
- Linux系列開坑記(四)-檔案查詢工具Linux
- 【轉載】Linux查詢檔案安裝路徑Linux
- Linux基礎命令---檢查密碼檔案pwckLinux密碼
- LINUX下查詢大檔案及大的資料夾Linux
- Linux的檔案系統與Shell簡單命令Linux
- linux查詢某段時間修改的檔案的總大小Linux
- linux批次find查詢檔案並批次替換覆蓋該檔案Linux
- linux中查詢find命令的複雜用法Linux
- Linux 查詢 日誌 相關命令Linux
- Linux基礎命令---查詢程式idLinux
- 命令列技巧:使用 find 和 xargs 查詢和處理檔案命令列