Linux目錄和文件——查詢目錄和文件的命令 摘要:本文主要學習了在Linux系統中是如何查詢目錄和文件的。 which命令 which命令是根據PATH環境變數設置的路徑,去搜索執行文件。 基本語法 選項說明 使用舉例 type命令 type命令用來顯示指定命令的類型: 1)alias:別名。 2 ...
Linux目錄和文件——查詢目錄和文件的命令
摘要:本文主要學習了在Linux系統中是如何查詢目錄和文件的。
which命令
which命令是根據PATH環境變數設置的路徑,去搜索執行文件。
基本語法
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保留字。
3)function:函數,Shell函數。
4)builtin:內建(內嵌)命令,Shell內建命令。
5)file:文件,磁碟文件,外部命令。
6)unfound:未找到。
基本語法
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命令用於在特定目錄中查找符合條件的文件。
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 ~]#