Linux目錄和文件——查詢目錄和文件的命令

Linux目錄和文件——查詢目錄和文件的命令

摘要:本文主要學習了在Linux系統中是如何查詢目錄和文件的。正則表達式

which命令

which命令是根據PATH環境變量設置的路徑,去搜索執行文件。shell

基本語法

1 [root@localhost ~]# which [選項] 命令名稱

選項說明

1 -a:列出全部的能夠找到的同名執行文件。

使用舉例

1 [root@localhost ~]# which ls
2 alias ls='ls --color=auto'
3     /usr/bin/ls
4 [root@localhost ~]#

type命令

type命令用來顯示指定命令的類型:數據庫

1)alias:別名。安全

2)keyword:關鍵字,Shell保留字。socket

3)function:函數,Shell函數。函數

4)builtin:內建(內嵌)命令,Shell內建命令。學習

5)file:文件,磁盤文件,外部命令。ui

6)unfound:未找到。spa

基本語法

1 [root@localhost ~]# type [選項] 命令名稱

選項說明

1 -t:顯示「file」、「alias」或者「builtin」,分別表示給定的指令爲「外部指令」、「別名」或者「內嵌指令」。
2 -p:若是給出的指令爲外部指令,則顯示其絕對路徑。
3 -a:在環境變量「PATH」指定的路徑中,顯示給定指令的信息,包括命令別名。

使用舉例

 1 [root@localhost ~]# type ls
 2 ls 是 `ls --color=auto' 的別名
 3 [root@localhost ~]# type -t ls
 4 alias
 5 [root@localhost ~]# type -p ls
 6 [root@localhost ~]# type -a ls
 7 ls 是 `ls --color=auto' 的別名
 8 ls 是 /usr/bin/ls
 9 [root@localhost ~]# type cd
10 cd 是 shell 內嵌
11 [root@localhost ~]# type -t cd
12 builtin
13 [root@localhost ~]# type -p cd
14 [root@localhost ~]# type -a cd
15 cd 是 shell 內嵌
16 cd 是 /usr/bin/cd
17 [root@localhost ~]# type useradd
18 useradd 是 /usr/sbin/useradd
19 [root@localhost ~]# type -t useradd
20 file
21 [root@localhost ~]# type -p useradd
22 /usr/sbin/useradd
23 [root@localhost ~]# type -a useradd
24 useradd 是 /usr/sbin/useradd
25 [root@localhost ~]# 

whereis命令

whereis命令用於在特定目錄中查找符合條件的文件。code

whereis命令用來定位指令的二進制程序、源代碼文件和man手冊頁等相關文件的路徑。whereis命令只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。

基本語法

1 whereis [選項] 文件或目錄

選項說明

1 -b:只搜索二進制文件。
2 -m:只搜索man手冊。
3 -s:只搜索源代碼。
4 -u:搜索不是b、m、s指定目錄的其餘特殊目錄。
5 -l:列出會去查詢的有效查找目錄。

使用舉例

1 [root@localhost ~]# whereis ls
2 ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
3 [root@localhost ~]# 

find命令

find命令能夠在目錄結構中搜索文件,並執行指定的操做。

基本語法

1 [root@localhost ~]# find 目錄 [選項] 查詢後的動做

選項說明

 1 -amin n:查找n分鐘之前被訪問過的全部文件。
 2 -atime n:查找n天之前被訪問過的全部文件。
 3 -cmin n:查找n分鐘之前文件狀態被修改過的全部文件。
 4 -ctime n:查找n天之前文件狀態被修改過的全部文件。
 5 -mmin n:查找n分鐘之前文件內容被修改過的全部文件。
 6 -mtime n:查找n天之前文件內容被修改過的全部文件。
 7 -newer file:file爲一個存在的文件,列出比file還要新的文件。
 8 -uid n:n爲數字,這個數字是使用者的賬號ID,亦即UID。
 9 -gid n:n爲數字,這個數字是羣組名稱的ID。
10 -user name:查找name爲用戶名的文件。
11 -group name:查找name爲羣組名的文件。
12 -nouser:查找沒有全部人的文件。
13 -nogroup:查找沒有所屬組的文件。
14 -maxdepth n:n爲數字,查找深度距離當前目錄最多n個子目錄深度 。
15 -mindepth n:n爲數字,查找深度距離當前目錄至少n個子目錄深度。
16 -name filename:查找文件名爲filename的文件,區分大小寫。*表示通配任意個字符,?表示通配單個字符。
17 -iname filename:查找文件名爲filename的文件,不區分大小寫。*表示通配任意個字符,?表示通配單個字符。
18 -type TYPE:查找文件的類型爲TYPE的文件。類型主要有:通常文件(f),裝置文件(b、c),目錄(d),軟連接(l),socket(s),及FIFO(p)等屬性。
19 -empty:查找路徑下爲空的文件或文件夾。
20 -size [+-]SIZE:查找比SIZE還要大(+)或小(-)的文件。SIZE的規格有:k、M、G。
21 -perm [-/]mode:查找文件權限爲mode或大於mode(-)或包含任一mode(/)的文件,這個mode爲相似chmod的屬性值。
22 -a:兩個條件必須同時爲真。
23 -o:兩個條件只要任意一個爲真。
24 -not:對條件進行取反。

執行動做

1 -exec command {} \;:command爲其餘命令,-exec後面可再接額外的命令來處理查詢到的結果。
2 -ok command {} \;:-ok相對於-exec而言更安全一點,會讓用戶肯定所要執行的操做。
3 -print:將結果打印到屏幕上。

使用舉例

1 [root@localhost ~]# find . -name test
2 ./test
3 [root@localhost ~]#

locate命令

locate命令用於查找符合條件的文檔,該命令會去保存文檔和目錄名稱的數據庫內,查找合乎範本樣式條件的文檔或目錄,比find快不少。由於該命令是從數據庫內查找,並非在磁盤上直接查找。

locate的速度比find快,它並非真的查找,而是查數據庫,通常文件數據庫在/var/lib/slocate/slocate.db中,因此locate的查找並非實時的,而是以數據庫的更新爲準,通常是系統會天天更新一次,也能夠手工升級數據庫。

安裝命令

1 [root@localhost ~]# yum install -y mlocate

更新命令

1 [root@localhost ~]# updatedb

基本語法

1 [root@localhost ~]# locate [選項] 關鍵字

選項說明

1 -i:忽略大小寫的差別。
2 -c:不輸出文件名,僅計算找到的文件數量。
3 -l n:n爲數字,表示僅輸出n行。
4 -S:輸出locate所使用的文件或目錄的相關屬性。
5 -r:使用正則表達式進行搜索。

使用舉例

1 [root@localhost ~]# locate hello.zip
2 /home/hello.zip
3 [root@localhost ~]#
相關文章
相關標籤/搜索