1. 程式人生 > 其它 >Linux 下查詢檔案

Linux 下查詢檔案

技術標籤:作業系統linux模糊查詢

文章目錄

1、查詢相關指令

1.1、whereis

  • Linux whereis命令用於查詢檔案,只能用於查詢二進位制檔案、原始碼檔案和man手冊頁,一般檔案的定位需使用locate命令。

引數:
-b  只查詢二進位制檔案。
-B<目錄>  只在設定的目錄下查詢二進位制檔案。
-f  不顯示檔名前的路徑名稱。
-m  只查詢說明檔案。
-M<目錄>  只在設定的目錄下查詢說明檔案。
-s  只查詢原始程式碼檔案。

-S<目錄>  只在設定的目錄下查詢原始程式碼檔案。
-u  查詢不包含指定型別的檔案。

示例:

whereis ls       # 查 ls 這個指令所在的位置
whereis -m ls    # 查 ls 這個指令幫助檔案所在的位置

1.2、find

  • 用來查詢目錄和檔案

引數說明 :

find 根據下列規則判斷 path 和 expression,在命令列上第一個 - ( ) , ! 之前的部份為 path,之後的是 expression。如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print 為預設 expression。

expression 中可使用的選項有二三十個之多,在此只介紹最常用的部份。

-mount, -xdev : 只檢查和指定目錄在同一個檔案系統下的檔案,避免列出其它檔案系統中的檔案

-amin n : 在過去 n 分鐘內被讀取過

-anewer file : 比檔案 file 更晚被讀取過的檔案

-atime n : 在過去n天內被讀取過的檔案

-cmin n : 在過去 n 分鐘內被修改過

-cnewer file :比檔案 file 更新的檔案

-ctime n : 在過去n天內被修改過的檔案

-empty : 空的檔案-gid n or -group name : gid 是 n 或是 group 名稱是 name

-ipath p, -path p : 路徑名稱符合 p 的檔案,ipath 會忽略大小寫

-name name, -iname name : 檔名稱符合 name 的檔案。iname 會忽略大小寫

-size n : 檔案大小 是 n 單位,b 代表 512 位元組的區塊,c 表示字元數,k 表示 kilo bytes,w 是二個位元組。

-type c : 檔案型別是 c 的檔案。

d: 目錄

c: 字型裝置檔案

b: 區塊裝置檔案

p: 具名貯列

f: 一般檔案

l: 符號連結

s: socket

-pid n : process id 是 n 的檔案

你可以使用 ( ) 將運算式分隔,並使用下列運算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

示例:

find . -name "*.c"                           # 查當前目錄下 字尾為 .c 的檔案
find /usr -ctime -20                         # 查usr目錄下 20天內更新的檔案
find ~ -name "host*" -print                  # 查home目錄下 host開頭的檔案
find /usr/ -path "*jdk*"                     # 查usr目錄下 含jdk的資料夾或檔案
find / -path "*jdk*" | grep java-8-openjdk   # 查根目錄下 含jdk的資料夾或檔案,過濾只要帶有java-8-openjdk的

1.3、which

  • which指令會在環境變數$PATH設定的目錄裡查詢符合條件的檔案。

引數:
-n<檔名長度>  指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。
-p<檔名長度>  與-n引數相同,但此處的<檔名長度>包括了檔案的路徑。
-w  指定輸出時欄位的寬度。
-V  顯示版本資訊。

示例:

which java       # 查詢java指令所在位置
which ls         # 查詢ls指令所在位置

1.4、locate

locate等於find -name

示例:

locate /etc/sh        # 搜尋etc目錄下以sh開頭的檔案
locate -i ~/m         # 搜尋home主目錄下以m開頭的檔案,並且忽略大小寫

1.5、type -p

type命令用來區分某個命令到底是由shell自帶的,還是由shell外部的。
type -p相當於which命令

示例:

type -p java     # 顯示java指令路徑

2、區分

指令功能
which檢視指令的檔案位置(從環境變數裡面找)
type檢視指令的資訊、檔案位置
whereis檢視檔案的位置 (查二進位制檔案、可執行檔案、幫助檔案)
locate檢視檔案的位置 (從資料中查詢,有的linux沒有這個指令)
find檢視檔案的位置(從磁碟上查詢,可模糊查詢)