定位、查找文件的命令
命令 | 功能 | 命令 | 功能 |
which | 從path中找出文件的位置 | find | 找出所有符合要求的文件 |
whereis | 找出特定程序的路徑 | locate | 從索引中找出文件位置 |
9.1 which
語法
which command
說明
依序從path環境變量所列的目錄中找出command的位置,並顯示完整路徑的名稱。在找到第一個符合條件的程序文件時,就立刻停止搜索,省略其余未搜索目錄。
范例,找出ls命令的程序文件的位置:
which ls
系統輸出:
/usr/bin/ls
9.2 whereis
語法
whereis [option] name
說明
找出特定程序的可執行文件、源代碼文件以及manpage的路徑。你所提供的name會被先除去前置的路徑以及任何.ext形式的擴展名。
whereis 只會在標准的Linux目錄中進行搜索。
常用選項
-b
只搜索可執行文件。
-m
只搜索manpage。
-s
只搜索源代碼文件。
-B directory
更改或限定搜索可執行的文件的目錄。
-M directory
更改或限定搜索manpage的目錄。
-S directory
更改或限定搜索源代碼文件的目錄。
9.3 find
語法
find paths expression [action]
說明
以paths為搜索起點逐層往下找出每一個符合expression條件的文件,並對該文件執行action所代表的動作。expression是搜索條件,它由一個代表匹配項目的選項以及一個代表匹配模式的參數構成。
action是處理動作,它有一個代表“處理方式”的選項以及一個操作參數構成。若不指定action,則默認動作是顯示出文件名。
常用的搜索條件
-name pattern
-path pattern
-lname pattern
找出名稱、路徑名稱或符號鏈接的目標匹配pattern模式的文件。pattern可以包含shell的文件名通配符,路徑是相對於搜索起點的。
常見處理動作
顯示出文件的相對路徑(相對於搜索起點)。
-exec cmd /;
執行指定的shell命令。若cmd含有任何shell特殊字符,則他們之前都必須加上/符號,以免shell立刻執行他們。在cmd里,可以用”{}”符號(包括雙引號)表示find所找出的文件。
9.4 locate
語法
locate patterns
說明
第一次執行locate時,它會建立一個索引數據庫,當往后再次執行時,它便從索引數據庫中迅速找出文件的位置。locate很適合用來反復搜索很少變動的目錄樹,但是對於剛改名的舊文件以及新建的文件,locate就找不到了,除非重建數據庫。
updatedb
語法
updatedb [option]
說明
更新slocate的索引數據庫。
選項
-e directories
略過directories所列的目錄。