find命令用于文件搜索,所在路徑/bin/find,其語法格式為:
find [搜索范圍] [匹配條件]
1)-name:根據文件名搜索,如搜索/etc下的init文件
[root@localhost ~]# find /etc/ -name init/etc/sysconfig/init/etc/kdump-adv-conf/kdump_initscripts/init/etc/init[root@localhost ~]#
注:-iname是不區分大小寫,與Windows不同的是,按照-name搜索到的文件只有與之完全相同的才會被搜索出來。
2)-size:按照文件大小搜索,如搜索根目錄下大于100M的文件:
[root@localhost ~]# find / -size +204800find: “/PRoc/1628/task/1628/fd/5”: 沒有那個文件或目錄find: “/proc/1628/task/1628/fdinfo/5”: 沒有那個文件或目錄find: “/proc/1628/fd/5”: 沒有那個文件或目錄find: “/proc/1628/fdinfo/5”: 沒有那個文件或目錄[root@localhost ~]#
注:num前面的"+"表示大于,"-"表示小于,其次文件的大小需要進行換算,Linux在以數據塊為單位,1個數據塊即為512字節(0.5k)。
3)-user:按所有者進行查找,-group:按所屬組進行查找,如在/home目錄下查找所有者為username的文件:find /home –user username。
4)-amin:按訪問時間進行搜索(access),-cmin:按文件屬性修改的時間進行搜索(change),-mmin:按文件內容修改的時間進行搜索(modify)。如在/etc下查找5分鐘內被修改過屬性的文件:
find /etc –cmin -5
注:+5表示超過5分鐘,-5表示在5分鐘內。
5)連接選項:-a和-o
-a表示與(and)的關系,-o表示或(or)的關系,如在/etc下查找大于80M,小于100M的文件:find /etc –size +163840 –a –size -204800。
6)連接選項:-exec和-ok
格式為:-exec/-ok [命令] {} /;
其中"{}"包含搜索的結果,"/"表示轉移字符,分號";"表示命令結束。-exec和-ok用于搜索后文件后執行特定命令。二者的區別是前者直接執行,后者需詢問確認。如在/etc下查找inittab文件并顯示其詳細信息:
[root@localhost ~]# find /etc/ -name inittab -exec ls -l {} /;-rw-r--r--. 1 root root 884 1月 7 22:27 /etc/inittab[root@localhost ~]#7)-type和-inum
-type選項是根據文件類型查找,其中"f"表示文件,"d"表示目錄,"l"表示軟鏈接文件。如查找/etc下以init開頭的文件:
[root@localhost ~]# find /etc/ -name init* -a -type f/etc/sysconfig/init/etc/sysconfig/network-scripts/init.ipv6-global/etc/kdump-adv-conf/kdump_initscripts/init/etc/init/init-system-dbus.conf/etc/selinux/targeted/contexts/initrc_context/etc/inittab[root@localhost ~]#
-inum選項是根據i節點查找,Linux中每個文件都有i節點號,通過ls –l命令可以顯示,i節點號的作用是:當對一個文件名很復雜的文件進行操作時,可以通過i節點號進行操作,同時,i節點號可以查找硬鏈接信息。
(2)locatelocate命令用于在文件資料庫中查找文件,是一種快速查找工具,其語法格式為:
locate [文件名稱]
加入-i選項表示不區分大小寫進行查找。
注:新創建的文件無法使用locate進行查找,因為該文件尚未更新至文件資料庫中,若要成功查找,則需使用updatedb命令進行更新。另外,創建在/tmp下的文件并不在文件資料庫的收錄范圍之中,因此也無法查找該文件夾下的文件。
查找inittab文件
[root@localhost ~]# locate inittab/etc/inittab/usr/share/man/man5/inittab.5.gz/usr/share/vim/vim72/syntax/inittab.vim[root@localhost ~]#
在/root目錄下創建一個新文件,使用updatedb進行更新,然后進行查找:
[root@localhost ~]# touch text.txt[root@localhost ~]# locate text.txt[root@localhost ~]# updatedb[root@localhost ~]# locate text.txt/root/text.txt(3)which
which命令用于搜索命令所在目錄及別名信息,所在路徑為/usr/bin/which,語法格式為:
which [命令名稱]
如查找rm命令的信息:
[root@localhost ~]# which rmalias rm='rm -i' /bin/rm
其中alias是定義的別名。
(4)whereiswhereis命令用于搜索命令所在目錄及幫助文檔路徑,所在路徑為/usr/bin/whereis,其語法格式為:
whereis [命令名稱]
如查找ls的命令信息:
[root@localhost ~]# whereis lsls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz(5)grep
grep命令用于在文件中搜索字串匹配的行并輸出,所在路徑為/bin/grep,其語法格式為:
grep –iv [指定字串] [文件]
其中-i選項表示不區分大小寫,-v選項表示排除指定字串進行顯示。
例:搜索/root下install.log中的MySQL所在行:
[root@localhost ~]# grep mysql install.log安裝 mysql-libs-5.1.71-1.el6.i686
例:查看/etc下inittab文件除#開頭的行
[root@localhost ~]# grep -v ^# /etc/inittabid:3:initdefault:
新聞熱點
疑難解答