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


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

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

which命令

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

基本語法

1 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 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 find 目錄 [選項] 查詢后的動作

選項說明

 1 -amin 分鍾數:查找指定分鍾數以前被訪問過的所有文件。
 2 -atime 天數:查找指定天數以前被訪問過的所有文件。
 3 -cmin 分鍾數:查找指定分鍾數以前文件狀態被修改過的所有文件。
 4 -ctime 天數:查找指定天數以前文件狀態被修改過的所有文件。
 5 -mmin 分鍾數:查找指定分鍾數以前文件內容被修改過的所有文件。
 6 -mtime 天數:查找指定天數以前文件內容被修改過的所有文件。
 7 -newer 文件名:列出比指定文件還要新的文件。
 8 -uid 帳號ID:查找使用者是指定賬號(即UID)的文件。
 9 -gid 群組ID:查找群組是指定賬號的文件。
10 -user 用戶名:查找指定用戶名的文件。
11 -group 群組名:查找指定群組名的文件。
12 -nouser:查找沒有所有人的文件。
13 -nogroup:查找沒有所屬組的文件。
14 -maxdepth 深度:查找深度距離當前目錄最多n個子目錄深度 。
15 -mindepth 深度:查找深度距離當前目錄至少n個子目錄深度。
16 -name 文件名:查找指定文件名的文件,區分大小寫。*表示通配任意個字符,?表示通配單個字符。
17 -iname 文件名:查找指定文件名的文件,不區分大小寫。*表示通配任意個字符,?表示通配單個字符。
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 命令 {} \;:-exec后面可再接額外的命令來處理查詢到的結果。
2 -ok 命令 {} \;:-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 locate [選項] 關鍵字

選項說明

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

使用舉例

1 [root@localhost ~]# locate hello.zip
2 /home/hello.zip
3 [root@localhost ~]#


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM