CentOS定位、查詢檔案的命令
定位、查詢檔案的命令
which 從path中找出檔案的位置 find 找出所有符合要求的檔案
whereis 找出特定程式的路徑 locate 從索引中找出檔案位置
1.which命令
語法:
which command
說明:
which命令的作用是,在PATH變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果。在找到第一個符合條件的程式檔案時,就立刻停止搜尋,省略其餘未搜尋目錄。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
例項:
[root@localhost /]# which ls
alias ls='ls --color=auto'
/bin/ls
[root@localhost /]# which nginx
/usr/bin/nginx
2.whereis命令
whereis [option] name
找出特定程式的可執行檔案、原始碼檔案以及manpage的路徑。你所提供的name會被先除去前置的路徑以及任何.ext形式的副檔名。
whereis 只會在標準的Linux目錄中進行搜尋。
常用選項
-b
只搜尋可執行檔案。
-m
只搜尋manpage。
-s
只搜尋原始碼檔案。
-B directory
更改或限定搜尋可執行的檔案的目錄。
-M directory
更改或限定搜尋manpage的目錄。
-S directory
更改或限定搜尋原始碼檔案的目錄。
[root@localhost /]# whereis grep
grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz
[root@localhost /]# whereis -b nginx
nginx: /usr/bin/nginx /usr/local/nginx
3.find命令
find paths expression [action]
以paths為搜尋起點逐層往下找出每一個符合expression條件的檔案,並對該檔案執行action所代表的動作。expression是搜尋條件,它由一個代表匹配專案的選項以及一個代表匹配模式的引數構成。
$ find <指定目錄> <指定條件> <指定動作>
- <指定目錄>: 所要搜尋的目錄及其所有子目錄。預設為當前目錄。
- <指定條件>: 所要搜尋的檔案的特徵。
- <指定動作>: 對搜尋結果進行特定的處理。
如果什麼引數也不加,find預設搜尋當前目錄及其子目錄,並且不過濾任何結果(也就是返回所有檔案),將它們全都顯示在螢幕上。
action是處理動作,它有一個代表“處理方式”的選項以及一個操作引數構成。若不指定action,則預設動作是顯示出檔名。
常用的搜尋條件
-name pattern
-path pattern
-lname pattern
找出名稱、路徑名稱或符號連結的目標匹配pattern模式的檔案。pattern可以包含shell的檔名萬用字元,路徑是相對於搜尋起點的。
常見處理動作
-print
顯示出檔案的相對路徑(相對於搜尋起點)。
-exec cmd /;
執行指定的shell命令。若cmd含有任何shell特殊字元,則他們之前都必須加上/符號,以免shell立刻執行他們。在cmd裡,可以用”{}”符號(包括雙引號)表示find所找出的檔案。
1.按照檔名查詢
(1)find / -name httpd.conf #在根目錄下查詢檔案httpd.conf,表示在整個硬碟查詢
(2)find /etc -name httpd.conf #在/etc目錄下檔案httpd.conf
(3)find /etc -name '*srm*' #使用萬用字元*(0或者任意多個)。表示在/etc目錄下查詢檔名中含有字串‘srm’的檔案
(4)find . -name 'srm*' #表示當前目錄下查詢檔名開頭是字串‘srm’的檔案
2.按照檔案特徵查詢
(1)find / -amin -10 # 查詢在系統中最後10分鐘訪問的檔案(access time)
(2)find / -atime -2 # 查詢在系統中最後48小時訪問的檔案
(3)find / -empty # 查詢在系統中為空的檔案或者資料夾
(4)find / -group cat # 查詢在系統中屬於 group為cat的檔案
(5)find / -mmin -5 # 查詢在系統中最後5分鐘裡修改過的檔案(modify time)
(6)find / -mtime -1 #查詢在系統中最後24小時裡修改過的檔案
(7)find / -user fred #查詢在系統中屬於fred這個使用者的檔案
(8)find / -size +10000c #查找出大於10000000位元組的檔案(c:位元組,w:雙字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小於1000KB的檔案
3.使用混合查詢方式查詢檔案
引數有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目錄下查詢大於10000位元組並在最後2分鐘內修改的檔案
(2)find / -user fred -or -user george #在/目錄下查詢使用者是fred或者george的檔案檔案
(3)find /tmp ! -user panda #在/tmp目錄中查詢所有不屬於panda使用者的檔案
[root@localhost /]# find / -name nginx.conf
/www/server/nginx/conf/nginx.conf
/www/server/nginx/src/conf/nginx.conf
[root@localhost /]# find /www/server/nginx/conf -name nginx.conf
4.locate命令
語法:locate patterns
locate命令其實是“find -name”的另一種寫法,但是要比後者快得多,原因在於它不搜尋具體目錄,而是搜尋一個數據庫(/var/lib/locatedb),這個資料庫中含有本地所有檔案資訊。Linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的檔案。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。
[root@localhost /]# locate nginx.conf
/www/server/nginx/conf/nginx.conf.default
5.type命令
type命令其實不能算查詢命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進位制檔案提供的。如果一個命令是外部命令,那麼使用-p引數,會顯示該命令的路徑,相當於which命令。
[root@localhost /]# type cd
cd is a shell builtin
[root@localhost /]# type ls
ls is aliased to `ls --color=auto'
[root@localhost /]# type grep
grep is /bin/grep
cd是shell的自帶命令(build-in)
grep是一個外部命令,並顯示該命令的路徑。
[root@localhost /]# type -p grep
/bin/grep
加上-p引數後,就相當於which命令。
CentOS定位、查詢檔案的命令
定位、查詢檔案的命令
which 從path中找出檔案的位置 find 找出所有符合要求的檔案
whereis 找出特定程式的路徑 locate 從索引中找出檔案位置
1.which命令
語法:
which command
說明:
which命令的作用是,在PATH變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果。在找到第一個符合條件的程式檔案時,就立刻停止搜尋,省略其餘未搜尋目錄。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
例項:
[root@localhost /]# which ls
alias ls='ls --color=auto'
/bin/ls
[root@localhost /]# which nginx
/usr/bin/nginx
2.whereis命令
語法:
whereis [option] name
說明:
找出特定程式的可執行檔案、原始碼檔案以及manpage的路徑。你所提供的name會被先除去前置的路徑以及任何.ext形式的副檔名。
whereis 只會在標準的Linux目錄中進行搜尋。
常用選項
-b
只搜尋可執行檔案。
-m
只搜尋manpage。
-s
只搜尋原始碼檔案。
-B directory
更改或限定搜尋可執行的檔案的目錄。
-M directory
更改或限定搜尋manpage的目錄。
-S directory
更改或限定搜尋原始碼檔案的目錄。
例項:
[root@localhost /]# whereis grep
grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz
[root@localhost /]# whereis -b nginx
nginx: /usr/bin/nginx /usr/local/nginx
3.find命令
語法:
find paths expression [action]
說明:
以paths為搜尋起點逐層往下找出每一個符合expression條件的檔案,並對該檔案執行action所代表的動作。expression是搜尋條件,它由一個代表匹配專案的選項以及一個代表匹配模式的引數構成。
$ find <指定目錄> <指定條件> <指定動作>
- <指定目錄>: 所要搜尋的目錄及其所有子目錄。預設為當前目錄。
- <指定條件>: 所要搜尋的檔案的特徵。
- <指定動作>: 對搜尋結果進行特定的處理。
如果什麼引數也不加,find預設搜尋當前目錄及其子目錄,並且不過濾任何結果(也就是返回所有檔案),將它們全都顯示在螢幕上。
action是處理動作,它有一個代表“處理方式”的選項以及一個操作引數構成。若不指定action,則預設動作是顯示出檔名。
常用的搜尋條件
-name pattern
-path pattern
-lname pattern
找出名稱、路徑名稱或符號連結的目標匹配pattern模式的檔案。pattern可以包含shell的檔名萬用字元,路徑是相對於搜尋起點的。
常見處理動作
-print
顯示出檔案的相對路徑(相對於搜尋起點)。
-exec cmd /;
執行指定的shell命令。若cmd含有任何shell特殊字元,則他們之前都必須加上/符號,以免shell立刻執行他們。在cmd裡,可以用”{}”符號(包括雙引號)表示find所找出的檔案。
1.按照檔名查詢
(1)find / -name httpd.conf #在根目錄下查詢檔案httpd.conf,表示在整個硬碟查詢
(2)find /etc -name httpd.conf #在/etc目錄下檔案httpd.conf
(3)find /etc -name '*srm*' #使用萬用字元*(0或者任意多個)。表示在/etc目錄下查詢檔名中含有字串‘srm’的檔案
(4)find . -name 'srm*' #表示當前目錄下查詢檔名開頭是字串‘srm’的檔案
2.按照檔案特徵查詢
(1)find / -amin -10 # 查詢在系統中最後10分鐘訪問的檔案(access time)
(2)find / -atime -2 # 查詢在系統中最後48小時訪問的檔案
(3)find / -empty # 查詢在系統中為空的檔案或者資料夾
(4)find / -group cat # 查詢在系統中屬於 group為cat的檔案
(5)find / -mmin -5 # 查詢在系統中最後5分鐘裡修改過的檔案(modify time)
(6)find / -mtime -1 #查詢在系統中最後24小時裡修改過的檔案
(7)find / -user fred #查詢在系統中屬於fred這個使用者的檔案
(8)find / -size +10000c #查找出大於10000000位元組的檔案(c:位元組,w:雙字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小於1000KB的檔案
3.使用混合查詢方式查詢檔案
引數有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2 #在/tmp目錄下查詢大於10000位元組並在最後2分鐘內修改的檔案
(2)find / -user fred -or -user george #在/目錄下查詢使用者是fred或者george的檔案檔案
(3)find /tmp ! -user panda #在/tmp目錄中查詢所有不屬於panda使用者的檔案
例項:
[root@localhost /]# find / -name nginx.conf
/www/server/nginx/conf/nginx.conf
/www/server/nginx/src/conf/nginx.conf
[root@localhost /]# find /www/server/nginx/conf -name nginx.conf
/www/server/nginx/conf/nginx.conf
4.locate命令
語法:locate patterns
說明:
locate命令其實是“find -name”的另一種寫法,但是要比後者快得多,原因在於它不搜尋具體目錄,而是搜尋一個數據庫(/var/lib/locatedb),這個資料庫中含有本地所有檔案資訊。Linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的檔案。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。
例項:
[root@localhost /]# locate nginx.conf
/www/server/nginx/conf/nginx.conf
/www/server/nginx/conf/nginx.conf.default
/www/server/nginx/src/conf/nginx.conf
5.type命令
說明:
type命令其實不能算查詢命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進位制檔案提供的。如果一個命令是外部命令,那麼使用-p引數,會顯示該命令的路徑,相當於which命令。
例項:
[root@localhost /]# type cd
cd is a shell builtin
[root@localhost /]# type ls
ls is aliased to `ls --color=auto'
[root@localhost /]# type grep
grep is /bin/grep
cd是shell的自帶命令(build-in)
grep是一個外部命令,並顯示該命令的路徑。
[root@localhost /]# type -p grep
/bin/grep
加上-p引數後,就相當於which命令。