1. 程式人生 > >Linux中常用的查詢指令(which、whereis、find、locatae)

Linux中常用的查詢指令(which、whereis、find、locatae)

我們經常在linux要查詢某個檔案,但不知道放在哪裡了,可以使用下面的一些命令來搜尋:

Which   檢視可執行檔案的位置。

whereis 檢視檔案的位置。

locate  配合資料庫檢視檔案位置。

Find    實際搜尋硬碟查詢檔名稱

which

which命令的作用是,在PATH變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果。也就是說,使用which 命令,就可以看到某個系統命令是否存在,以及執行的到底是哪個位置的命令。 

1.命令格式: which 可執行檔名稱 

2.命令功能: which指令會在PATH變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果。

例1:

查詢有別名的命令時,顯示別名的資訊

spacer.gifwKiom1dJNciQCEidAAAMvSazs-E129.png

例如:在環境變數指定的路徑中,搜尋ls命令的位置

spacer.gifwKioL1dJNtHw809AAAAN8Zr-lkE127.png

3.命令引數:

-n  指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。

-p  與-n引數相同,但此處的包括了檔案的路徑。

-w  指定輸出時欄位的寬度。

-V  顯示版本資訊

which -v

wKiom1dJNeuTEm9gAAAb1lFwGq4407.png spacer.gif

whereis指令:

whereis命令只能用於程式名的搜尋,並且只搜尋二進位制檔案 (引數-b)、man說明檔案(引數-m)和原始碼檔案(引數-s)。

如果省略引數,則返回所有資訊。

    和find相比,whereis查詢的速度非常快,這是因為linux系統會將系統內的所有檔案都記錄在一個數據庫檔案中,當使用 whereis和下面即將介紹的locate時,會從資料庫中查詢資料, 而不是像find命令那樣,通過遍歷硬碟來查詢,效率自然會很高。 

     但是該資料庫檔案並不是實時更新,預設情況下時每星期更新一次,因此,我們在用whereis和locate 查詢檔案時,有時會找到已經被刪除的資料,或者剛建立檔案,卻無法查詢到,原因就是因為資料庫檔案沒有被更新。

1.命令格式:

          whereis [-bmsu] [BMS 目錄名 -f ] 檔名

2.命令功能:

whereis命令是定位可執行檔案、原始碼檔案、幫助檔案在檔案系統中的位置。這些檔案的屬性應屬於原始程式碼,二進位制文 件,或是幫助檔案。whereis 程式還具有搜尋原始碼、指定備用搜索路徑和搜尋不尋常項的能力。

3.命令引數:

-b   定位可執行檔案。

-m   定位幫助檔案。

-s   定位原始碼檔案。

-u   搜尋預設路徑下除可執行檔案、原始碼檔案、幫助檔案以外的其它檔案。

-B   指定搜尋可執行檔案的路徑。

-M   指定搜尋幫助檔案的路徑。

-S   指定搜尋原始碼檔案的路徑。

4.使用例項:

whereis –b grep      定位可執行檔案。

spacer.gifwKioL1dJNv2BliVcAAAKEA5PD5s493.png

whereis -m grep   定位幫助檔案。

spacer.gifwKiom1dJNhTDlf8LAAANLoSlF78392.png

whereis -s grep      定位原始碼檔案。

spacer.gifwKioL1dJNxvj_2YtAAANLoSlF78913.png

whereis -u grep       搜尋預設路徑下除可執行檔案、原始碼檔案、幫助檔案以外的其它檔案

spacer.gifwKioL1dJNybzsoccAAAJSnSdCVM905.png

-B   指定搜尋可執行檔案的路徑。

spacer.gifwKiom1dJNjvzVP3EAAAWq5-6LUE135.png

-M   指定搜尋幫助檔案的路徑。

spacer.gifwKiom1dJNkiCnBueAAALH0_wgzE472.png

-S   指定搜尋原始碼檔案的路徑。

spacer.gifwKioL1dJN0ujSIzeAAANr3D4pV0082.png

find指令:

    Linux下find命令在目錄結構中搜索檔案,並執行指定的操作。 Linux下find命令提供了相當多的查詢條件,功能很強大。由於 find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網路檔案系統( NFS), find命令在該檔案系統中同樣有效,只你具有相應的許可權。 在執行一個非常消耗資源的find命令時,很多人都傾向於把它放在後臺執行,因為遍歷一個大的檔案系統可能會花費很長的時間(這裡是指30G位元組以上的檔案系統)。

1.命令格式:

find pathname -options [-print -exec -ok ...]

 2.命令功能:

 用於在檔案樹種查詢檔案,並作出相應的處理(可能訪問磁碟)

3.命令引數:

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

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

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

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

使用用例:

查詢當前目錄下的test.cpp 並輸出

wKioL1dJODSRJawlAAAM2K-DswA345.png

查詢當前目錄下的test.c並且顯示許可權

wKiom1dJN1LTU6u0AAATkUcp9fY642.png

查詢當前目錄下的test.c並且顯示許可權

wKioL1dJOFjAAl9rAAAawb_FAiA150.png

4.命令選項:

-name   按照檔名查詢檔案(精確查詢區分大小寫)

wKiom1dJN2-js-aUAAAN4oC8HzE516.png

-iname   按照檔名查詢檔案(不區分大小寫)

wKioL1dJOHnBMER0AAATpM1YcBs476.png

-perm   按照檔案許可權來查詢檔案

wKiom1dJN43xh-gVAAAlHn-7iLk367.png

-user   按照檔案屬來查詢檔案。

wKioL1dJOJOiF0lNAAAPEvsICb4656.png

-group  按照檔案所屬的組來查詢檔案

wKiom1dJN6zQwnf7AAAM5hMvX3U877.png

-mtime -n +n  按照檔案的更改時間來查詢檔案

- n表示檔案更改時間距現在n天以內

wKioL1dJOLKxy6GBAAALOZHlrJA001.png

+ n表示檔案更改時間距現在n天以前

wKioL1dJOMSDKCdZAAANuUBRjWU659.png

find命令還有-atime和-ctime 選項,但它們都和-m time 選項相同

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

wKiom1dJN9jgAfzXAAAL_mvoCfo106.png

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

wKiom1dJN-OAhscGAAAI0NX3qHo612.png

-newer file1 ! file2  查詢更改時間比檔案file1新但比檔案file2舊的檔案

wKioL1dJOOqjUtIdAAAWvGhGUKI275.png

-type  查詢某一型別的檔案,諸如

b - 塊裝置檔案

wKiom1dJOAHS261IAAAGhHqrLbQ502.png

d - 目錄

wKioL1dJOQbAioB3AAAayuNaP_U870.png

c - 字元裝置檔案

wKiom1dJOBnCg89vAAAGpd-CTn8522.png

p - 管道檔案

wKioL1dJOR2BAiAaAAAGrEBlqHE021.png

l - 符號連結檔案

wKiom1dJODLiiTLtAAAe0vv-ZvY203.png

f - 普通檔案

wKioL1dJOTaiDO7FAAAbxX14YK0051.png

-size n:[c] 查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。

wKiom1dJOFCwUjm1AAAM1KZ8z6w538.png

wKioL1dJOV3C-b21AAAHXNVfFFU658.png

-depth:在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢

wKioL1dJOWrD_JO8AAAMwdt6NjI693.png

-fstype:查詢位於某一型別檔案系統中的檔案,這些檔案系統型別通常可以在配置檔案/etc/fstab中找到,該配置檔案中包含了本系統中有關檔案系統的資訊

-mount:在查詢檔案時不跨越檔案系統mount點。

-follow:如果find命令遇到符號連結檔案,就跟蹤至連結所指向的檔案

-cpio:對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。

 另外,下面三個的區別:

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

例子:

1. 在當前目錄中查詢更改時間在5日以前的檔案並刪除它們:   

 find . -type f -mtime +5 -ok rm {} \;

wKioL1dJOXnyc6otAAAjt5X8Kc4413.png

2. Linux 用find命令查詢檔案大小為XX的檔案的辦法    

例如:一個檔案5556位元組,可以這樣寫   

即查詢大於5555位元組小於5557位元組的檔案,以上查詢的是/root 目錄

find /root -size -5557c -size +5555c -exec ls -ld {} \; 

查詢小於500K,大於50K的檔案

find /root -size -500K -size +50K -exec ls -ld {} \;  

練習:  

查詢/目錄下檔名為test的目錄

$ find / -name test -print

查詢當前所有目錄並排序

升序

wKiom1dJOJbSqyRoAAAeDo2gVks925.png

降序

wKiom1dJOKDzYntDAAAahsCWA3A180.png

查詢所有目錄名稱中按照”.log”結尾的目錄

]$ find / -name '*.log' -print

查詢系統中最近5分鐘訪問的目錄 

查詢系統中最近5天訪問的檔案 

find / -mtime -5

查詢當前目錄下所有許可權為775的檔案,並設定成777

 find . -perm 775 -ok chmod 777 {} \;

wKioL1dJOafR7XtjAABCxEaagyQ172.png

查詢檔案大小為10k的檔案,並刪除

wKiom1dJONniuVAXAAAJ0XqEeos314.png

locate指令:

使用許可權:所有使用者

使用方式: locate [-q] [-d ] [--database=]

locate [-r ] [--regexp=]

locate [-qv] [-o ] [--output=]

locate [-e ] [-f ] <[-l ] [-c]

locate [-Vh] [--version] [--help] 

說明:

locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。

 在一般的 distribution 之中,資料庫的建立都被放在 contab 中自動執行。一般使用者在使用時只要用 # locate your_file_name 的型式就可以了。

引數:

-u 

-U

建立資料庫,-u 會由根目錄開始,-U 則可以指定開始的位置。

-l

 如果 是 1.則啟動安全模式。在安全模式下,使用者不會看到許可權無法看到的檔案。這會使速度減慢,因為 locate 必須至實際的檔案系統中取得檔案的許可權資料

-f 

將特定的檔案系統排除在外,例如我們沒有到理要把 proc 檔案系統中的檔案放在資料庫中

-q 

安靜模式,不會顯示任何錯誤訊息

-n 

至多顯示 n個輸出

-r 

使用正規運算式做尋找的條件

-o 

指定資料庫存的名稱

-d

 指定資料庫的路徑

 -h 

顯示輔助訊息

 -v 

顯示更多的訊息

 -V

顯示程式的版本訊息

範例:

locate chdrv : 尋找所有叫chdrv 的檔案 

locate -n 100 a.out :尋找所有叫 a.out 的檔案,但最多隻顯示100個

locate -u : 建立資料庫

相關推薦

Linux常用查詢指令whichwhereisfindlocatae

我們經常在linux要查詢某個檔案,但不知道放在哪裡了,可以使用下面的一些命令來搜尋:Which   檢視可執行檔案的位置。whereis 檢視檔案的位置。locate  配合資料庫檢視檔案位置。Find    實際搜尋硬碟查詢檔名稱whichwhich命令的作用是,在PAT

Linux常用操作命令

備份 並不會 使用方法 nts 系統 版本 不定 vim常用 相同 1、cd命令 這是一個非常基本,也是大家經常需要使用的命令,它用於切換當前目錄,它的參數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。如: [plain] view plain

linux常用的壓縮解壓命令詳解

壓縮 不管在windows中還是在linux中,我們會經常看到各種壓縮的文件,此刻我們需要使用就得解壓,在這就介紹介紹linux中解壓、壓縮的命令。 在做實驗之前,我們先創建幾個文件,大小都是100M,方便我們更能清晰理解。 一、compress【選項】file(不是太常用,而且tab鍵還不能補齊)

linux運維常用指令

png ima shel 登錄用戶 linu init 電力 src linux運維 一、Shell中常用的快捷鍵 man界面中的快捷鍵: ?keyword 向上搜索關鍵詞keyword,n向下搜索,N繼續向上搜索 /key

Linux常用命令檔案與目錄

1、pwd 檢視當前目錄(Print Working Directory) 2、cd 切換工作目錄(Change Directory) (1)格式:cd [目錄位置]   特殊目錄:   .當前目錄   ..上一級目錄   ~使用者主目錄   -上個

C語言常用排序演算法氣泡排序選擇排序插入排序希爾排序快速排序堆排序實現比較

以下程式在win10 X64位作業系統,使用VS2017執行驗證可行 排序是非常重要且很常用的一種操作,有氣泡排序、選擇排序、插入排序、希爾排序、快速排序、堆排序等多種方法。 例項1 冒泡法排序 1.前言: 陣列中有N個整數,用冒泡法將它們從小到大(或從大到小)排序。冒泡法

Linux檢視系統版本核心和發行CPU資訊以及修改主機名

檢視cpu資訊        cat /proc/cpuinfo   檢視系統與核心相關資訊        Uname [選項]  &nbs

iOS開發——oc——founctation常用結構體NSRangeNSPoint\CGPointNSSize\CGSizeNSRect\CGRect

          founcation中常用結構體 一、概述:    在foundation框架中,有一些關於位置和尺寸的結構體,在我們實際開發ios的時候會經常被使用到,所以這裡詳細講解下:    NSRange : 表示範圍    NSPoint\CGPoint

linux搜尋檔案或目錄whichwhereis,locate,find

[[email protected] ~]# locate passwd /home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_DB_war/DB.war/jsp/as/user/passw

Linux下各種查詢命令find, grep, which, whereis, locate

find命令 find < path > < expression > < cmd > path: 所要搜尋的目錄及其所有子目錄。預設為當前目錄。expression: 所要搜尋的檔案的特徵。cmd: 對搜尋結果進行特定的處理。 如果什麼引數也不加,find預設搜尋當

Linux c一些常用函式總結c語言中文網。。。

fgets()函式 標頭檔案:include<stdio.h> fgets()函式 標頭檔案:include<stdio.h>fgets()函式用於從檔案流中讀取一行或指定個數的字元,其原型為:    char * fgets(char * 

Linux常用操作指令面試專用

常用指令 ls          顯示檔案或目錄     &nbs

linux如何查詢端口被占用的情況

linux查詢端口今日要運用python寫一個端口勘探的小程序,以檢測一些特定的效勞端口有沒有被占用,突然發現自個竟然不知道在linux中怎麽查詢端口被占用的情況,天吶,從速學習一下。Linux如何查看端口1、lsof -i:端口號 用於查看某一端口的占用情況,比如查看8000端口使用情況,lsof -i:8

Linux 常用命令

ln -s directory 沒有 開始 media 關機命令 範圍 後臺作業 解壓縮 命令基本格式: 命令提示符:[[email protected]/* */ ~]# root 代表當前的登錄用戶(linux當中管理員賬號是root)

LinuxLinux常用操作命令

詳細信息 hadoop 用戶組 軟件 name vim使用 title redhat tail Linux簡介及Ubuntu安裝 常見指令 系統管理命令 打包壓縮相關命令 關機/重啟機器 Linux管道 Linux軟件包管理 vim使用 用戶及用戶組管理 文件權限管理

linux常用時間和字符串之間相互轉化

時間函數 spa lin cell form time函數 地理 -1 名稱 在Linux中經常會遇到時間和字符串相互轉化的情形,有兩個函數專門對應相應的轉化。 1、時間轉字符串函數strftime 函數原型:size_t strftime(char *s,size_t m

String類常用的方法重要

循環 類型 demo width 尋找 str2 子字符串 replace table 1.字符串與字節 public String(byte[] byte); 將全部字節變成字符串 public String (byte[] byte,int offset,in

Linux的 man 命令2017年9月21日 22:41:20

code kernel des dev games usr 配置文件 jce lib 輸入q,回車就退出; 輸入man man,會詳細告訴你man手冊的使用方法; man手冊是學習linux中經常用到的東西 使用方法: 1. man的查詢後面的數字含義:   1

Linux的目錄功能Red Hat 7

linux zhang linux中 文件的 程序 tmp red hat 7 /tmp hang 目錄的基本功能: /bin:存放普通用戶使用的命令 /sbin:存放管理員可以執行的命令 /home:存放普通的家目錄  如張三家目錄為/home/zhangsan /roo

Linux常用操作命令

有用 lena 第一個字符 pda dha 查看 加載 rmdir 結構 常用指令 ls:顯示文件或目錄 -i:列出文件詳細信息(list) -a:列出當前目錄下所有文件及目錄,包括隱藏文件和文件夾(a) mkdir:創建目錄 -p:創建目錄,若無上級目錄則創建(