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

命令與文件的查詢

腳本與文件名查詢:which

文件名查找:whereis ,locate find

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

腳本文件名的查詢(which)

語(yǔ)法:which [-a] command
選項(xiàng)和參數(shù)
-a:將由 PATH 目錄中能找到的指令都列出
說(shuō)明:which 執(zhí)行更具當(dāng)前用戶環(huán)境變量指定的位置去尋找 command,并返回第一個(gè)找到的結(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

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


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

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

locate

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

舉例


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

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

Find

語(yǔ)法:find [PATH] [OPTION] [ACTION]
PATH:要查找的路徑
OPTION:

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

-atime,-ctime,-mtime,以-mtime 為例
-mtime n :表示在 n 天之前的“一天之內(nèi)”被更改過(guò)的文件
-mtime +n :列出在 n 天之前,不包含 n 天,被更改的文件
-mtime –n : 列出在 n 天之內(nèi),含 n 天本身被更改的文件
-newer file: file 為一個(gè)存在的文件。列出比 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 的文件,這個(gè) mode為類似 chmod 的屬性值,舉例來(lái)說(shuō), -rwsr-xr-x的屬性為 4755
-perm -mode :搜尋文件權(quán)限必須要全部囊括 mode 的權(quán)限的文件,舉例來(lái)說(shuō),我們要搜尋 -rwxr--r--,亦即 0744的文件,使用 -perm -0744,當(dāng)一個(gè)文件的權(quán)限為 -rwsr-xr-x,亦即 4755時(shí),也會(huì)被列出來(lái),因?yàn)?-rwsr-xr-x的屬性已經(jīng)囊括了 -rwxr--r--的屬性了。
-perm +mode :搜尋文件權(quán)限包含任一 mode 的權(quán)限的文件,舉例來(lái)說(shuō),我們-rwxr-xr-x,亦即 -perm +755時(shí),但一個(gè)文件屬性為 -rw-------也會(huì)被列出來(lái),因?yàn)樗?-rw....的屬性存在!

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

其他可進(jìn)行的操作:

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

舉例


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