鳥哥的Linux私房菜(七) 命令與檔案的查詢

2021-09-02 12:49:42 字數 2513 閱讀 4796

在linux系統中,"一切皆是檔案"。我們經常需要知道某個檔案具體存放的位置,才能對該檔案進行一些修改或維護等操作。而且很多軟體配置檔案的檔名是不變的,但是預設分配放置的目錄不同。此時就需要一些檔案查詢命令將檔案的完整名稱和具體位置查詢出來,從而對檔案進行相應的操作。

作用:檢視檔案型別,判斷檔案裡面的基本資料屬於哪種,比如屬於ascii或者data檔案,還是binary。在我們使用查詢命令之前,往往先用file判斷一下檔案型別,從而使用相應的查詢命令。

舉例:

在終端模式下,連續輸入兩個[tab]鍵就能知道使用者有多少命令可以執行。那這些執行命令的完整檔名存放在**呢?我們可以通過which或者type命令來尋找。

作用:查詢並顯示給定命令的絕對路徑,環境變數path中儲存了查詢命令時需要遍歷的目錄。根據path這個環境變數所規範的路徑去查詢「執行檔案」的檔名。

引數:-a——  將所有由path目錄中可以找得到的命令均列出,而非僅顯示第乙個

適用場景:

用於查詢命令/可執行檔案所在的路徑。有時候可能在多個路徑下存在相同的命令,該命令可用於查詢當前所執行的命令到底是哪乙個位置處的命令。

舉例:

一般情況下,type命令被用於判斷某一命令是否是內建命令(shell自帶的命令),但是它實際上有更多的用法。在這裡我們僅對type查詢路徑的用法進行講解。如果是shell自帶的命令,則會提示此命令為shell buildin;如果乙個命令是外部命令,那麼使用 shell  -p  就會顯示該命令的路徑,相當於which命令。

作用:檢視乙個命令的執行路徑(如果它是外部命令的話)

引數:-p —— 只返回外部命令的資訊,相當於which命令。

舉例:

作用:查詢系統中某些特定目錄下的檔案

引數:-b ——  只找二進位制格式的檔案

-m ——  只找在說明檔案manual路徑下的檔案

-s  ——  只找sourse原始檔

-u ——  查詢不在上述三個選項當中的其他特殊檔案

適用場景:

二進位制檔案、原始檔和幫助手冊檔案路徑的查詢。

舉例:

作用:從資料庫建立的索引中查詢,該命令查詢所有部分匹配的檔案,使用之前可以使用updatedb命令手動更新資料庫。

引數:-i  ——  忽略大小寫的差異

-r ——   後面可接正規表示式的顯示方式

適用場景:

適用於檔案的模糊查詢,尤其在只記得部分檔名的情況下。

舉例:

find是個很強大的查詢命令,但因為find是直接在硬碟上遍歷查詢,所以花費的時間比較長,而且十分耗費資源。

作用:遍歷當前工作目錄及其子目錄遞迴的搜尋檔案

引數:- path: 所要搜尋的目錄及其所有子目錄,預設為當前目錄。

- option: 所要搜尋的檔案的特徵。

- action: 對搜尋結果進行特定的處理

1)與時間有關的引數:-atime(訪問時間) 、-ctime(狀態修改時間) 、與-mtime(修改時間)。以下是具體的說明:

-atime  n: 將n*24小時內access過的檔案列出來。

n為數字,n表示n天前的24小時之內,+n表示n天之前(不含n天本身),-n表示n天之內(含n天本身)

-ctime   n: 將n*24小時內狀態發生改變的檔案列出來

-mtime  n: 將n*24小時內被修改過的檔案列出來

-newer file: file 為存在的檔案,把比file還要新的檔案名列出來

舉例:

2)與使用者或使用者組名有關的引數:

-uid  n:n為數字,這個數字是使用者的賬號id,即uid。

-gid  n:n為數字,這個數字是使用者組名的賬號id,即gid

-user name:name 為使用者賬號名稱。

-group name :name 為使用者組名。

-nouser :尋找檔案的所有者不存在於/etc/passwd 的人 。

-nogroup :尋找檔案的所有使用者組不存在於/etc/group 中的檔案 。

適用場景:

find的查詢效率相比whereis和locate較低,能用which、whereis和locate的時候盡量不要用find。

鳥哥Linux私房菜

linux相關知識 鳥哥linux私房菜 真是人間美味啊!linux 基礎篇 引言 這部份包括了早期的red hat 6.x以及 鳥哥寫的 一 二版的基礎篇各章節文章彙整!第一部份 linux的規劃與安裝 第二部份 linux檔案 目錄與磁碟格式 第三部份 學習shell與shell scripts...

鳥哥私房菜

鳥哥 linux 私房菜 ad 在我們平時使用unix命令的時候,需要平時多積累並且整理。下面,就是我們在平時時候整理的unix命令。而且是很全面的bash內建命令.bash內建unix命令 執行當前程序環境中的程式。同source。file dotunix命令從檔案file中讀取命令並執行。空操作...

鳥哥的linux私房菜

各個元件或者裝置在linux下面都是乙個檔案 硬體廠商對linux所推出的驅動程式較慢,選購硬體時候,應該要選擇已經安裝過linux測試的硬體較好 磁碟陣列 raid 可以完成速度效能 備份等任務,通常作為檔案伺服器,訪問頻率較高。網絡卡要求對於讀取非常頻繁的 選用intel 3com 乙個最簡單的...