Linux 下查詢檔案
文章目錄
1、查詢相關指令
1.1、whereis
- Linux whereis命令用於查詢檔案,只能用於查詢二進位制檔案、原始碼檔案和man手冊頁,一般檔案的定位需使用locate命令。
引數:
-b 只查詢二進位制檔案。
-B<目錄> 只在設定的目錄下查詢二進位制檔案。
-f 不顯示檔名前的路徑名稱。
-m 只查詢說明檔案。
-M<目錄> 只在設定的目錄下查詢說明檔案。
-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 | 檢視檔案的位置(從磁碟上查詢,可模糊查詢) |