鍍金池/ 教程/ Linux/ 命令與文件的查詢
Linux 學習記錄--開機掛載錯誤
日志系統(tǒng)
數(shù)據(jù)流重定向
內(nèi)存交換空間的構(gòu)建
文件系統(tǒng)簡介
Linux 學習記錄--軟件安裝 RPM|SRPM|YUM
文件特殊權(quán)限
目錄配置 FHS
文件內(nèi)容查閱
Boot Loader
文件壓縮
Linux 學習記錄--文件權(quán)限
Linux 命令縮寫
命令與文件的查詢
文件|目錄的默認權(quán)限與隱藏權(quán)限
shell script
服務(wù)
Linux 學習記錄--程序編譯與函數(shù)庫
正則表達式與其應(yīng)用
關(guān)機相關(guān)指令
shell
vim 與 vi 常用命令
系統(tǒng)調(diào)用:進程控制
文件系統(tǒng)簡單操作
磁盤掛載與卸載
有名管道通訊
磁盤分區(qū),格式化與檢驗
工作管理與進程管理
匿名管道通訊
Linux 學習記錄--啟動流程
文件與目錄管理
管道命令
命名別名與歷史命令
文件備份|還原
shell變量
Linux 學習記錄--ACL 權(quán)限控制
內(nèi)核|內(nèi)核模塊編譯
文件管理相關(guān)系統(tǒng)編程

命令與文件的查詢

腳本與文件名查詢:which

文件名查找:whereis ,locate find

數(shù)據(jù)庫更新:updatedb

腳本文件名的查詢(which)

語法:which [-a] command
選項和參數(shù)
-a:將由 PATH 目錄中能找到的指令都列出
說明:which 執(zhí)行更具當前用戶環(huán)境變量指定的位置去尋找 command,并返回第一個找到的結(jié)果(-a 則返回所有)


[root@localhost tmp]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
[root@localhost tmp]# which ifconfig
/sbin/ifconfig
[root@localhost tmp]#

文件名查找

whereis

語法:whereis [-bmsu]文件或目錄
選項和參數(shù):
-b: 只找二進制格式的文件
-m:只找在說明文件 manual 路徑下的文件
-s:只找 source 源文件
-u:查找不在上述三個選項的其他文件


[root@localhost tmp]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

說明:whereis 并不是從 PATH 指定路徑查找,而是利用數(shù)據(jù)庫查詢

locate

語法: locate [-ir] keyword
選項和參數(shù)
-i:忽略大小寫
-r:后可接正則表達式

舉例


[root@localhost tmp]# locate passwd
/etc/passwd

說明:linux 會將所有文件都記錄在數(shù)據(jù)庫中,locate 和 whereis 從這個數(shù)據(jù)庫進行查詢,并不是掃描硬盤,因此可以提高效率,但是也帶來一個問題就是不能保準數(shù)據(jù)庫的信息和硬盤式同步的。 為了避免上述問題,可以手都去更新數(shù)據(jù)庫,updatedb

Find

語法:find [PATH] [OPTION] [ACTION]
PATH:要查找的路徑
OPTION:

與時間相關(guān)的參數(shù)

-atime,-ctime,-mtime,以-mtime 為例
-mtime n :表示在 n 天之前的“一天之內(nèi)”被更改過的文件
-mtime +n :列出在 n 天之前,不包含 n 天,被更改的文件
-mtime –n : 列出在 n 天之內(nèi),含 n 天本身被更改的文件
-newer file: file 為一個存在的文件。列出比 file 還新的文件

http://wiki.jikexueyuan.com/project/learn-linux-step-by-step/images/2.gif" alt="" />

舉例


[root@bogon ~]# find / -mtime 0
[root@bogon ~]# find  /etc –newer  /etc/passwd

與用戶和用戶組相關(guān)的參數(shù)

-uid n: 查詢 UID(用戶 ID)為 n 的文件
-gid n: 查詢 GID(用戶組 ID)為 n 的文件
-user name:查詢所屬用戶名為 name 的文件
-group name: 查詢所屬用戶組為 name 的文件
-nouser:查詢不屬于任何用戶的文件
-nogroup查詢不屬于任何用戶組的文件

舉例


[root@bogon ~]# find /home -user tkf  

與文件權(quán)限及名稱有關(guān)的參數(shù)

-name filename: 查找文件名為 filename 支持模糊查詢
-size [+-]SIZE: 查詢比 SIZE 大或小的的文件。大小單位 c 代表 byte ,k 代表 kb
-type TYPE: 查找文件類型為 TYPE 的文件
-perm mode :搜尋文件權(quán)限剛好等于 ode 的文件,這個 mode為類似 chmod 的屬性值,舉例來說, -rwsr-xr-x的屬性為 4755
-perm -mode :搜尋文件權(quán)限必須要全部囊括 mode 的權(quán)限的文件,舉例來說,我們要搜尋 -rwxr--r--,亦即 0744的文件,使用 -perm -0744,當一個文件的權(quán)限為 -rwsr-xr-x,亦即 4755時,也會被列出來,因為 -rwsr-xr-x的屬性已經(jīng)囊括了 -rwxr--r--的屬性了。
-perm +mode :搜尋文件權(quán)限包含任一 mode 的權(quán)限的文件,舉例來說,我們-rwxr-xr-x,亦即 -perm +755時,但一個文件屬性為 -rw-------也會被列出來,因為他有 -rw....的屬性存在!

舉例:[root@bogon ~]# find / -name http

其他可進行的操作:

-exec command: command 為其他命令 –exec 后可接其他命令來處理查詢到的結(jié)果
-print:將結(jié)果打印到屏幕上,默認操作

舉例


root@bogon ~]# find / -name *http*  -exec  ls -l {} \;  
-rw-r--r-- 1 root root 97 2008-05-24 /etc/pam.d/system-config-httpd
-rw-r--r-- 1 root root 82 2008-05-24 /etc/security/console.apps/system-config-httpd
-rw------- 1 root root 464 2008-05-24 /etc/alchemist/switchboard/system-config-httpd.switchboard.adl