linux 命令 which whereis locate find

0、概述

*    `which`:在PATH變量指定的路徑中,搜索與指定名字匹配的系統命令的位置,并且返回第一個搜索結果。
*   `whereis`:搜索與指定名字匹配的二進制文件、源文件和幫助手冊文件所在的路徑。二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。在數據庫中查詢。
*   `locate`:locate 會給出所有與`*filename*` 相匹配的文件的路徑。在數據庫中查詢。
*   `find`:實際搜尋硬盤查詢文件名稱。
*   `whatis`:展示命令手冊頁面描述里的內容。使用 `mkwhatis` 命令可將當前系統上所有的幫助手冊及與之對應的關鍵字創建為一個數據庫。

1、which?

語法:which ??[-a] ??cmdname1 cmdname2 ......

作用:locate a command,從環境變量PATH中,定位/返回與指定名字相匹配的 命令/可執行文件 所在的路徑

原理:執行which命令時,which會在當前環境變量PATH中依次尋找能夠匹配所找命令名字的可執行文件名,不加-a選項,返回第一個匹配的可執行文件的路徑,否則依次返回滿足條件的所有可執行文件的路徑名。

適用場合:一般用于查找 命令/可執行文件 所在的路徑。有時候可能在多個路徑下存在相同的命令,該命令可用于查找當前所執行的命令到底是哪一個位置處的命令。?

[root@redhat ~]# which passwd
/usr/bin/passwd

2、whereis?

語法:?whereis [-bmsu] 文件或者目錄名稱?

參數說明:?

  • -b : 只找二進制文件?
  • -m: 只找在說明文件manual路徑下的文件?
  • -s : 只找source源文件?
  • -u : 沒有說明文檔的文件?

作用:定位/返回與指定名字匹配的二進制文件、源文件和幫助手冊文件所在的路徑。

原理:whereis命令首先會去掉filename中的前綴空格和以.開頭的任何字符,然后再在數據庫(var/lib/slocate/slocate.db)中查找與上述處理后的filename相匹配的二進制文件、源文件和幫助手冊文件,使用之前可以使用updatedb命令手動更新數據庫。

適用場合:二進制文件、源文件和幫助手冊文件路徑的查找。

例如:?

# 將和passwd文件相關的文件都查找出來
[fenglepeng@centos]# whereis passwd?  
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz?  # 只將二進制文件查找出來
[fenglepeng@centos]# whereis -b passwd?  
passwd: /usr/bin/passwd /etc/passwd?

和find相比,whereis查找的速度非常快,這是因為linux系統會將系統內的所有文件都記錄在一個數據庫文件中,當使用whereis和locate時,會從數據庫中查找數據,而不是像find命令那樣,通過遍歷硬盤來查找,效率自然會很高。?

但是該數據庫文件并不是實時更新,默認情況下每天更新一次,因此,我們在用whereis和locate查找文件時,有時會找到已經被刪除的數據,或者剛剛建立文件,卻無法查找到,原因就是因為數據庫文件沒有被更新。?(使用updatedb命令進行更新)

3、 locate?

語法:?locate 文件或者目錄名稱?

作用:同whereis指令一樣,也是從數據庫建立的索引中查找,不同的是該命令查找所有部分匹配的文件,使用之前可以使用updatedb命令手動更新數據庫。

原理:默認情況下(當filename中不包含通配符*),locate會給出所有與*filename*相匹配的文件的路徑。

適用場合:沒有文件類型性質的模糊查找(你只記得某個文件的部分名稱)。

個人感覺locate和whereis差不多,locate比較適合與數據庫一起配合著用,locate命令可以在搜尋數據庫時快速找到檔案

[fenglepeng@centos]# locate passwd
/lib/security/pam_unix_passwd.so
/lib/security/pam_passwdqc.so
/usr/include/rpcsvc/yppasswd.x
/usr/include/rpcsvc/yppasswd.h
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/rpcsvc/yppasswd.ph
/usr/lib/kde3/kded_kpasswdserver.la
/usr/lib/kde3/kded_kpasswdserver.so
/usr/bin/vncpasswd
/usr/bin/userpasswd
/usr/bin/yppasswd

4、 find?

語法:?find 路徑 參數?

參數說明:?

  1. 時間查找參數:?
    1. -atime n :將n*24小時內存取過的的文件列出來?
    2. -ctime n :將n*24小時內改變、新增的文件或者目錄列出來?
    3. -mtime n :將n*24小時內修改過的文件或者目錄列出來?
    4. -newer file :把比file還要新的文件列出來?
  2. 名稱查找參數:?
    1. -gid n?????? :尋找群組ID為n的文件?
    2. -group name? :尋找群組名稱為name的文件?
    3. -uid n?????? :尋找擁有者ID為n的文件?
    4. -user name?? :尋找用戶者名稱為name的文件?
    5. -name file?? :尋找文件名為file的文件(可以使用通配符)?

作用:從當前目錄遞歸的搜索文件。

原理:遍歷當前工作目錄及其子目錄,find命令是在硬盤上遍歷查找,非常耗硬盤資源,查找效率相比whereis和locate較低。

適用場合:能用which、whereis和locate的時候盡量不要用find。

[fenglepeng@centos]# find / -name zgz
/home/zgz
/home/zgz/zgz
/home/weblogic/bea/user_projects/domains/zgz?

總結

find,遍歷硬盤查找,通常使用 find / -name Filename。耗內存。locate和whereis是根據數據庫查找,無法實時查找文件。有可能找到剛才刪除的文件和無法找到新增的文件。which根據path找可執行文件。whereis 可以用來找相關安裝路徑和二進制文件,可執行文件。

當我們用whereis和locate無法查找到我們需要的文件時,可以使用find,但是find是在硬盤上遍歷查 找,因此非常消耗硬盤的資源,而且效率也非常低,因此建議大家優先使用whereis和locate。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454736.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454736.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454736.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 轉 exe -- py2exe庫實錄

本文基于windows 7 python 3.4 把python程序打包成exe,比較好用的庫是py2exe 其操作步驟是: --> 編寫python程序 --> 再額外編寫一個導入了py2exe的python腳本(不妨如:setup.py)存在同一目錄下 --> 運行這個腳本,打包生成的exe文件…

python網絡爬蟲面試題,搞定這套Python爬蟲面試題(面試會so easy)

搞定這套Python爬蟲面試題(面試會so easy)來源:中文源碼網 瀏覽: 次 日期:2019年11月5日【下載文檔: 搞定這套Python爬蟲面試題(面試會so easy).txt 】(友情提示:右鍵點上行txt文檔名->目標另存為)搞定這套Python爬蟲面試題(面試會…

fastjson與spring mvc整合的配置

fastjson 是阿里巴巴開發的開源json解析組件&#xff0c;方便于通過java來生成和解析json格式的字符串和對象。 fastjson可以對Spring的返回數據進行json轉換&#xff08;SpringMVC的ResponseBody注釋&#xff09; 以下附上與spring mvc整合的xml配置&#xff1a; <mvc:anno…

Python 框架 之 Scrapy 爬蟲(一)

在編寫爬蟲時&#xff0c;性能的消耗主要在IO請求中&#xff0c;當單進程單線程模式下請求URL時必然會引起等待&#xff0c;從而使得請求整體變慢。 1、同步執行 import requestsdef fetch_async(url):response requests.get(url)return responseurl_list [http://www.gith…

編程新手導論(轉載)

第二部分 導論&#xff0c;這一部分主要是關于編程的導論&#xff0c; (要懂得一點思想具備一點常識)《設計&#xff0c;編碼&#xff0c;&#xff0c;與軟工》&#xff08;編程與思想&#xff09;這一章解釋了三種思想&#xff0c;原語&#xff0c;抽象&#xff0c;組合&#…

如何讓電腦成為看圖說話的高手?計算機視覺頂會ICCV論文解讀

ICCV&#xff0c;被譽為計算機視覺領域三大頂級會議之一。作為計算機視覺領域最高級別的會議之一&#xff0c;其論文集代表了計算機視覺領域最新的發展方向和水平。阿里巴巴在今年的大會上有多篇論文入選&#xff0c;本篇所解讀的論文是阿里iDST與多家機構合作的入選論文之一&a…

canvas繪制線條1像素的問題

http://jo2.org/html5-canvas%E7%94%BB%E5%9B%BE3%EF%BC%9A1px%E7%BA%BF%E6%9D%A1%E6%A8%A1%E7%B3%8A%E9%97%AE%E9%A2%98/轉載于:https://www.cnblogs.com/XIE7654/p/7493315.html

php汽車找車位,遭遇到車多車位少 教你如何快速找到停車位

[摘要]車主們大多時間會穿梭在市區&#xff0c;到了目的地后那就先找停車位&#xff0c;現在市區寸土寸金&#xff0c;一個停車位面積要占幾平米呢&#xff0c;所以停車位基本是不夠用的。下面和大家聊聊怎么找合適的停車位。車主們大多時間會穿梭在市區&#xff0c;去商場購物…

Python 框架 之 Scrapy 爬蟲(二)

Scrapy是一個為了爬取網站數據&#xff0c;提取結構性數據而編寫的應用框架。 其可以應用在數據挖掘&#xff0c;信息處理或存儲歷史數據等一系列的程序中。其最初是為了頁面抓取 (更確切來說, 網絡抓取)所設計的&#xff0c; 也可以應用在獲取API所返回的數據(例如 Amazon Ass…

十六進制透明度參照表

00%FF&#xff08;不透明&#xff09; 5%F2 10%E5 15%D8 20%CC 25%BF 30%B2 35%A5 40%99 45%8c 50%7F 55%72 60%66 65%59 70%4c 75%3F 80%33 85%21 90%19 95%0c 100%00&#xff08;全透明&#xff09;轉載于:http…

lamp和php,[LAMP]Apache和PHP的結合

在LAMP架構中&#xff0c;Apache通過PHP模塊與Mysql建立連接&#xff0c;讀寫數據。那么配置Apache和PHP結合的步驟是怎么操作的呢&#xff1f;1、修改http.conf文件[rootjuispan ~]# cat /usr/local/apache2.4/conf/httpd.conf......#ServerName......AllowOverride noneRequi…

Day-5: Python高級特性

python的理念是&#xff1a;簡單、優雅。所以&#xff0c;在Python中集成了許多經常要使用的高級特性&#xff0c;以此來簡化代碼。 切片&#xff1a;對于一個list或者tuple&#xff0c;取其中一段的元素&#xff0c;稱為切片&#xff08;Slice&#xff09;。 L[start:end]表示…

前端之 XMLHttpRequest

XMLHttpRequest 和AJAX的愛恨情仇 AJAX 是 asynchronous javascript and XML 的簡寫&#xff0c;中文翻譯是異步的 javascript 和 XML&#xff0c;這一技術能夠向服務器請求額外的數據而無須卸載頁面&#xff0c;會帶來更好的用戶體驗。雖然名字中包含 XML &#xff0c;但 AJAX…

makefile——小試牛刀

//a.h,包含頭文件stdio.h,并且定義一個函數print #include<stdio.h> void print();//b.c&#xff0c;包含頭文件a.h&#xff0c;然后就可以寫print函數的內容了 #include"a.h" void print(){ printf("who are you\n"); }//c.c&#xff0c;包含頭文件…

云電腦是什么_云電腦和我們現在平時用的電腦有什么區別?

&#x1f340;溫馨提示&#x1f340;公眾號推送改版&#xff0c;為了不讓您錯過【掌中IT發燒友圈】每天的精彩推送&#xff0c;切記將本號設置星標哦&#xff01;~01云電腦&#xff0c;是5G云服務時代的電腦新概念&#xff0c;是電腦的新的一種形態。從具體操作使用上來講&…

PHP如何用while實現循環,PHP 循環 -

PHP 循環 - While 循環循環執行代碼塊指定的次數&#xff0c;或者當指定的條件為真時循環執行代碼塊。PHP 循環在您編寫代碼時&#xff0c;您經常需要讓相同的代碼塊一次又一次地重復運行。我們可以在代碼中使用循環語句來完成這個任務。在 PHP 中&#xff0c;提供了下列循環語…

比較全的C語言面試題

1. static有什么用途&#xff1f;&#xff08;請至少說明兩種&#xff09; 1).限制變量的作用域 2).設置變量的存儲域 2. 引用與指針有什么區別&#xff1f; 1) 引用必須被初始化&#xff0c;指針不必。 2) 引用初始化以后不能被改變&#xff0c;指針可以改變所指的對象…

PHP爬取歷史天氣

PHP爬取歷史天氣 PHP作為宇宙第一語言&#xff0c;爬蟲也是非常方便&#xff0c;這里爬取的是從天氣網獲得中國城市歷史天氣統計結果。 程序架構 main.php <?phpinclude_once("./parser.php");include_once("./storer.php");#解析器和存儲器見下文$par…

Python 第三方庫之docx

日常上官網 https://python-docx.readthedocs.io/en/latest/ 一、安裝 pip install python-docx 二、寫入word word 中主要有兩種用文本格式等級&#xff1a;塊等級&#xff08;block-level&#xff09;和內聯等級&#xff08;inline-level&#xff09;word 中大部分內容都…

Unity AI副總裁Danny Lange:如何用AI助推游戲行業?

本文講的是Unity AI副總裁Danny Lange&#xff1a;如何用AI助推游戲行業&#xff1f; &#xff0c;10月26日&#xff0c;在加州山景城舉辦的ACMMM 2017大會進入正會第三天。在會上&#xff0c;Unity Technology負責AI與機器學習的副總裁Danny Longe進行了題為《Bringing Gaming…