1. 程式人生 > >Linux學習總結(十五)文件查找 which whereis locate find

Linux學習總結(十五)文件查找 which whereis locate find

find which whereis locate

which命令

用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時需要遍歷的目錄。which指令會在環境變量$PATH設置的目錄裏查找符合條件的文件。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
格式 which + 命令 例如 which ls

whereis命令

用來定位指令的二進制程序、源代碼文件和man手冊頁等相關文件的路徑。
whereis命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。

locate命令

用來查找文件或目錄。locate命令其實是find -name的另一種寫法,但是要比後者快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫/var/lib/locatedb,這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。

-d 指定查找目錄

find命令

用來在指定目錄下查找文件。任何位於參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。find通常我們理解為硬盤查找。locate就是數據庫查找。
http://man.linuxde.net/
以上內容全部來自該網站,我認為解釋的比較好直接拿過來。
以下重點介紹find 用法:
find用法相當多,以下介紹常用的幾種:
1 根據文件名搜索:
-name 選項,例如
find / -name " passwd
在根目錄下搜索文件名為passwd的文件,當然可以用正則模糊查找

-o 選項可以同時帶兩種文件,例如
find / -name ".txt" -o -name ".sh"
在根目錄下搜索文件名以txt和sh結尾的文件
!為否定參數,取補集。例如
find / ! -name "*.txt"
在根目錄下搜索非txt文件
2.根據文件類型搜索
-type 選項
f 普通文件 d 目錄 l 連接文件 b 塊設備 c字符設備 s套接字等等
例如 find / -type d 找出根目錄下的所有目錄
3.根據時間戳搜索
Linux文件系統每個文件都有三種時間戳:
訪問時間(-atime/天,-amin/分鐘):用戶最近一次訪問時間。
修改時間(-mtime/天,-mmin/分鐘):文件最後一次修改時間。
變化時間(-ctime/天,-cmin/分鐘):文件數據元(例如權限等)最後一次修改時間。
例如:

find / -tpye f -atime -7 搜索最近7天內被訪問過的所有文件
find / -type f -atime 7 搜索恰好7天前訪問過的文件
find / -tpye f -atime +7 搜索超過7天訪問時間的文件

4.根據文件大小進行搜索
-size
b 塊(512字節)c 字節 w (兩字節) k(千字節) M(兆字節) G(千兆字節)

例如 find / -type f -size 10M 搜索等於10M的文件
同理  find / -type f -size +10M 搜索大於10M的文件
  1. 刪除匹配文件
    例如 find / -name ".txt" -delete*
    6.-exec 選項及{}使用
    -exec 對搜索出的文件進行操作,類似於管道符,{}代替搜索出的文件
    例如:

find / -type f -name "*.txt" -exec rm {} \; 

找出根下以txt結尾的文件並刪除

Linux學習總結(十五)文件查找 which whereis locate find