linux 查詢檔案

2021-09-25 09:43:53 字數 4235 閱讀 7284

linux查詢檔案

1.find

linux find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;
find命令的引數;

pathname: find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。

-print: find命令將匹配的檔案輸出到標準輸出。

-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' \;,注意和\;之間的空格。

-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。

#-print 將查詢到的檔案輸出到標準輸出

#-exec command {} \; —–將查到的檔案執行command操作,{} 和 \;之間有空格

-name   filename             #查詢名為filename的檔案

-perm #按執行許可權來查詢

-user username #按檔案屬主來查詢

-group groupname #按組來查詢

-mtime -n +n #按檔案更改時間來查詢檔案,-n指n天以內,+n指n天以前

-atime -n +n #按檔案訪問時間來查gin: 0px">

-ctime -n +n #按檔案建立時間來查詢檔案,-n指n天以內,+n指n天以前

-nogroup #查無有效屬組的檔案,即檔案的屬組在/etc/groups中不存在

-nouser #查無有效屬主的檔案,即檔案的屬主在/etc/passwd中不存

-newer f1 !f2 找檔案,-n指n天以內,+n指n天以前

-ctime -n +n #按檔案建立時間來查詢檔案,-n指n天以內,+n指n天以前

-nogroup #查無有效屬組的檔案,即檔案的屬組在/etc/groups中不存在

-nouser #查無有效屬主的檔案,即檔案的屬主在/etc/passwd中不存

-newer f1 !f2 #查更改時間比f1新但比f2舊的檔案

-type b/d/c/p/l/f #查是塊裝置、目錄、字元裝置、管道、符號鏈結、普通檔案

-size n[c] #查長度為n塊[或n位元組]的檔案

-depth #使查詢在進入子目錄前先行查詢完本目錄

-fstype #查更改時間比f1新但比f2舊的檔案

-type b/d/c/p/l/f #查是塊裝置、目錄、字元裝置、管道、符號鏈結、普通檔案

-size n[c] #查長度為n塊[或n位元組]的檔案

-depth #使查詢在進入子目錄前先行查詢完本目錄

-fstype #查位於某一型別檔案系統中的檔案,這些檔案系統型別通常可 在/etc/fstab中找到

-mount #查檔案時不跨越檔案系統mount點

-follow #如果遇到符號鏈結檔案,就跟蹤鏈結所指的檔案

-cpio %; #查位於某一型別檔案系統中的檔案,這些檔案系統型別通常可 在/etc/fstab中找到

-mount #查檔案時不跨越檔案系統mount點

-follow #如果遇到符號鏈結檔案,就跟蹤鏈結所指的檔案

-cpio #對匹配的檔案使用cpio命令,將他們備份到磁帶裝置中

-prune #忽略某個目錄

2. which

which命令用於查詢並顯示給定命令的絕對路徑,環境變數path中儲存了查詢命令時需要遍歷的目錄。which指令會在環境變數$path設定的目錄裡查詢符合條件的檔案。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪乙個位置的命令。

語法

which [options] [arguments]
選項

-n《檔名長度》:制定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名;

-p《檔名長度》:與-n引數相同,但此處的《檔名長度》包含了檔案的路徑;

-w:指定輸出時字段的寬度;

-v:顯示版本資訊。

引數

指令名:指令名列表。
3.whereis

whereis命令首先會去掉filename中的字首空格和以.開頭的任何字元,然後再在資料庫(var/lib/slocate/slocate.db)中查詢與上述處理後的filename相匹配的二進位制檔案、原始檔和幫助手冊檔案,使用之前可以使用updatedb命令手動更新資料庫。

語法

whereis [options] [arguments]
選項

-b:只查詢二進位制檔案;

-b《目錄》:只在設定的目錄下查詢二進位制檔案;

-f:不顯示檔名前的路徑名稱;

-m:只查詢說明檔案;

-m《目錄》:只在設定的目錄下查詢說明檔案;

-s:只查詢原始**檔案;

-s《目錄》只在設定的目錄下查詢原始**檔案;

-u:查詢不包含指定型別的檔案。

引數 

指令名:要查詢的二進位制程式、原始檔和man手冊頁的指令名。
4. type

type命令用來顯示指定命令的型別,判斷給出的指令是內部指令還是外部指令。

命令型別:

alias:別名。

keyword:關鍵字,shell保留字。

function:函式,shell函式。

builtin:內建命令,shell內建命令。

file:檔案,磁碟檔案,外部命令。

unfound:沒有找到。

語法

type [options] [arguments]
選項

-t:輸出「file」、「alias」或者「builtin」,分別表示給定的指令為「外部指令」、「命令別名」或者「內部指令」;

-p:如果給出的指令為外部指令,則顯示其絕對路徑;

-a:在環境變數「path」指定的路徑中,顯示給定指令的資訊,包括命令別名。

引數

指令:要顯示型別的指令。
5. locate

locates是查詢系統上預建的文建索引資料庫(/var/lib/mlocate/mlocate.db)依賴實現構建的索引。索引的構建是在系統較為空閒時自動進行(週期性任務),管理員手動更新資料庫(updatedb)索引構建過程需要遍歷整個根檔案系統,極消耗資源.

工作特點:

查詢速度快

模糊查詢

非實時查詢

搜尋的是檔案的全路徑,不僅僅是檔名

可能只搜尋使用者具備讀取和執行許可權的目錄

選項

-i 不區分大小寫搜尋

-n 只列舉前n個匹配專案

引數

查詢字串:要查詢的檔名中含有的字串。

Linux查詢檔案

which locate whereis find which命令 用途 查詢可執行檔案並顯示所在的位置,適用於系統命令,shell命令無法查詢 which lsb release 檢視命令的絕對路徑,即這個可執行檔案的位置 usr bin lsb release which cd 查詢不到路徑,c...

Linux 查詢檔案

whereis 程式名稱 查詢軟體的安裝路徑 b 只查詢二進位制檔案 m 只查詢幫助檔案 s 只查詢源 u 排除指定型別檔案 f 只顯示檔名 b 目錄 在指定目錄下查詢二進位制檔案 m 目錄 在指定目錄下查詢幫助檔案 s 目錄 在指定目錄下查詢源 locate 檔名稱 在檔案索引資料庫中搜尋檔案 d...

linux查詢檔案

linux 如何顯示乙個檔案的某幾行 中間幾行 一 從第3000行開始,顯示1000行。即顯示3000 3999行 cat filename tail n 3000 head n 1000 二 顯示1000行到3000行 cat filename head n 3000 tail n 1000 注意...