服務(wù)器
一、執(zhí)行文件名查找
which(查找‘執(zhí)行文件\') //根據(jù)PATH環(huán)境變量所規(guī)范的路徑查詢
which [-a] command //其中參數(shù)-a是指列出找到所有命令,而非只顯示找到的第一個(gè)
例如:which ifconfig
二、文件名的查找
1、whereis(尋找特定文件)
whereis [-bmsu] filename/directoryname
-b :只找二進(jìn)制的文件
-m :只找在說明文件manual路徑下的文件
-s :只找source源文件
-u :查找不在上面三個(gè)規(guī)定下的特殊文件
例如:whereis ifconfig
2、locate
依賴于事先構(gòu)建好的索引庫,查找速度快;
用法:locate [-ir] keyword
-i : 忽略大小寫的差異
-r : 后面可接正則表達(dá)式的顯示防方式
例如:locate ifconfig
說明:lcoate是根據(jù)/var/lib/mlocate內(nèi)記錄數(shù)據(jù)查找,而數(shù)據(jù)來源通過更新數(shù)據(jù)庫updatedb根據(jù)/etc/updatedb.config的配置從硬盤獲取數(shù)據(jù)更新到/var/lib/mlocate;
注意:whereis和locate命令可能搜索到已經(jīng)刪除的文件,原因數(shù)據(jù)庫沒及時(shí)更新(一般一天更新一次),不過可以手動(dòng)執(zhí)行updatedb更新。
安裝locate:
yum -y install mlocate
查看包:
yum search mlocate
安裝好更新數(shù)據(jù)庫該命令才生效:
直接執(zhí)行updatedb即可
3、find
實(shí)時(shí)查找工具,通過遍歷指定目錄下的文件系統(tǒng)層級(jí)結(jié)構(gòu)完成文件查找;
工作特性:
查找速度略慢;
精確查找;
實(shí)時(shí)查找;
用法:
find [option] [PATH] [查找條件] [action]
查找條件:指定查找標(biāo)準(zhǔn),可以根據(jù)文件名、大小、類型、從屬關(guān)系、權(quán)限等標(biāo)準(zhǔn)進(jìn)行;
action:對(duì)符合查找條件的文件作出操作,例如刪除操作;
查找條件:
1)根據(jù)時(shí)間查詢
以‘天\'為單位:
-atime、-ctime、-mtime
以mtime為列
-mtime n :n為數(shù)字,在n天前的‘一天之內(nèi)\'被改過的文件;
-mtime -n :n天內(nèi)(包含第n天),修改過的文件;
-mtime +n :n天前(不包含第n天),修改過的文件;
以‘分\'為單位:
-amin、-mmin、-cmin
說明:時(shí)間的計(jì)算從現(xiàn)在開始以24小時(shí)為一天來計(jì)算,如下圖所示:
2)根據(jù)用戶和用戶組來查詢
-uid n:其中n即指定屬主的UID,在/etc/passwd可以查看;
-gid n:其中n即指定屬組的GID,在/etc/group可以查看
-user name: 查找屬主為name的文件;
-group name:查找屬組為name的文件;
-nouser:查找/etc/passwd中沒得屬主的文件;
-nogroup:查找/etc/group中沒得屬組的文件;
例如:find /home -user legayu
3)根據(jù)文件名和文件權(quán)限查找
-name ‘pattern\':查找文件;
-iname ‘pattern\':同-name,但忽略查找的文件大小寫;
支持glob通配符*,?,[],[^];
-type TYPE:查找文件類型為TYPE的文件,常見的文件類型有正規(guī)文件(f)、設(shè)備文件(b、c)、目錄(d)、連接文件(l)、socket(s)、及FIFO文件(p)等屬性;
-size [+-]SIZE:查找比SIZE還大(+)或還?。?)的文件,大小規(guī)格:c:代表byte,k:代表1024byte,還可用M、G表示:MB和GB,如查找大于50kB的文件:-size +50k
-perm mode:查找文件權(quán)限“剛好等于”mode的文件;
-perm -mode:查找文件權(quán)限“必須包含全部”mode的文件;
-perm /mode:查找文件權(quán)限“包含任一”mode的文件;
例如:find / -name passwd
4)組合邏輯
與:-a
或:-o
非:-not,!
說明:邏輯關(guān)系拆分與合并
!A -a !B = !(A -o B)
!A -o !B = !(A -a B )
例如:
查找/tmp中非root用戶的文件
兩種方法:
find /tmp -not -user root -ls
find /tmp -not -uid 0 -ls
找出/tmp目錄下屬主為非root,而且文件名不包含fstab字符串的文件
5)find特殊功能
對(duì)查詢的結(jié)果做操作
-print:輸出至標(biāo)準(zhǔn)輸出;默認(rèn)的動(dòng)作;
-ls:類似于對(duì)查找到的文件執(zhí)行“l(fā)s -l”命令,輸出文件的詳細(xì)信息,這里不可以使用‘ll\'別名;
-delete:刪除查找到的文件;
-fls /PATH/TO/SOMEFILE:把查找到的所有文件的長(zhǎng)格式信息保存至指定文件中;
-ok COMMAND {} \\; :對(duì)查找到的每個(gè)文件執(zhí)行由COMMAND表示的命令;每次操作都由用戶進(jìn)行確認(rèn);
-exec COMMAND {} \\; :對(duì)查找到的每個(gè)文件執(zhí)行由COMMAND表示的命令;
注意:find傳遞查找到的文件路徑至后面的命令時(shí),是先查找出所有符合條件的文件路徑,并一次性傳遞給后面的命令;
但是有些命令不能接受過長(zhǎng)的參數(shù),此時(shí)命令執(zhí)行會(huì)失敗;
另一種方式可規(guī)避此問題:
即find | xargs COMMAND
如:find /root -perm +644 -exec ls -l {} \\;
說明:其中的{}指find查找到的內(nèi)容,‘\\;\'代表結(jié)束符‘\\\'是轉(zhuǎn)義符
舉例:
查找/etc目錄下所有用戶都沒有寫權(quán)限的文件;
~]# find /etc -not -perm /222 -type f -ls
說明:所有用戶至少有一個(gè)寫的權(quán)限,則取反就是都沒有寫權(quán)
查找/etc目錄至少有一類用戶沒有執(zhí)行權(quán)限的文件;
~]# find /etc -not -perm -111 -type f -ls
說明:至少有一類用戶沒有執(zhí)行權(quán)限就是都有執(zhí)行權(quán)限的取反
以上所述是小編給大家介紹的了Linux命令與文件查找詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!
網(wǎng)站標(biāo)題:詳解Linux命令與文件查找
URL標(biāo)題:http://jinyejixie.com/article8/cphjop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、做網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站維護(hù)、響應(yīng)式網(wǎng)站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)