linux文件查找命令

which 查看可執(zhí)行文件的位置


  • 命令格式:
    which 可執(zhí)行文件名稱
  • 命令功能:
    which指令會(huì)在PATH變量指定的路徑中揪惦,搜索某個(gè)系統(tǒng)命令的位置专普,并且返回第一個(gè)搜索結(jié)果粘昨。
  • 命令參數(shù):
    -n  指定文件名長度瞻讽,指定的長度必須大于或等于所有文件中最長的文件名倾剿。
    -p  與-n參數(shù)相同筷频,但此處的包括了文件的路徑。
    -w  指定輸出時(shí)欄位的寬度前痘。
    -V  顯示版本信息
  • 使用實(shí)例:
    查找文件凛捏、顯示命令路徑:
    which lsmod
    用 which 去找出 which:
    which which

whereis 定位可執(zhí)行文件


  • 命令格式:
    whereis [-bmsu] [BMS 目錄名 -f ] 文件名
  • 命令功能:
    whereis命令是定位可執(zhí)行文件、源代碼文件际度、幫助文件在文件系統(tǒng)中的位置葵袭。這些文件的屬性應(yīng)屬于原始代碼,二進(jìn)制文件乖菱,或是幫助文件坡锡。whereis 程序還具有搜索源代碼蓬网、指定備用搜索路徑和搜索不尋常項(xiàng)的能力。
  • 命令參數(shù):
    -b 定位可執(zhí)行文件鹉勒。
    -m 定位幫助文件帆锋。
    -s 定位源代碼文件。
    -u 搜索默認(rèn)路徑下除可執(zhí)行文件禽额、源代碼文件锯厢、幫助文件以外的其它文件。
    -B 指定搜索可執(zhí)行文件的路徑脯倒。
    -M 指定搜索幫助文件的路徑实辑。
    -S 指定搜索源代碼文件的路徑。
  • 使用實(shí)例:
    將和**文件相關(guān)的文件都查找出來:
    whereis svn
    只將二進(jìn)制文件查找出來:
    whereis -b svn

locate 快速定位文件位置


  • 命令格式:
    Locate [選擇參數(shù)] [樣式]
  • 命令功能:
    locate命令可以在搜尋數(shù)據(jù)庫時(shí)快速找到檔案藻丢,數(shù)據(jù)庫由updatedb程序來更新剪撬,updatedb是由cron daemon周期性建立的,locate命令在搜尋數(shù)據(jù)庫時(shí)比由整個(gè)由硬盤資料來搜尋資料來得快悠反,但較差勁的是locate所找到的檔案若是最近才建立或 剛更名的残黑,可能會(huì)找不到,在內(nèi)定值中斋否,updatedb每天會(huì)跑一次梨水,可以由修改crontab來更新設(shè)定值。(etc/crontab)
    locate指定用在搜尋符合條件的檔案茵臭,它會(huì)去儲(chǔ)存檔案與目錄名稱的數(shù)據(jù)庫內(nèi)疫诽,尋找合乎范本樣式條件的檔案或目錄錄,可以使用特殊字元(如”” 或”?”等)來指定范本樣式旦委,如指定范本為kcpaner, locate會(huì)找出所有起始字串為kcpa且結(jié)尾為ner的檔案或目錄踊沸,如名稱為kcpartner若目錄錄名稱為kcpa_ner則會(huì)列出該目錄下包括 子目錄在內(nèi)的所有檔案。
    locate指令和find找尋檔案的功能類似社证,但locate是透過update程序?qū)⒂脖P中的所有檔案和目錄資料先建立一個(gè)索引數(shù)據(jù)庫逼龟,在 執(zhí)行l(wèi)oacte時(shí)直接找該索引,查詢速度會(huì)較快追葡,索引數(shù)據(jù)庫一般是由操作系統(tǒng)管理腺律,但也可以直接下達(dá)update強(qiáng)迫系統(tǒng)立即修改索引數(shù)據(jù)庫。
  • 命令參數(shù):
    -e 將排除在尋找的范圍之外宜肉。
    -1 如果 是 1.則啟動(dòng)安全模式匀钧。在安全模式下,使用者不會(huì)看到權(quán)限無法看到 的檔案谬返。這會(huì)始速度減慢之斯,因?yàn)?locate 必須至實(shí)際的檔案系統(tǒng)中取得檔案的 權(quán)限資料。
    -f 將特定的檔案系統(tǒng)排除在外遣铝,例如我們沒有到理要把 proc 檔案系統(tǒng)中的檔案 放在資料庫中佑刷。
    -q 安靜模式莉擒,不會(huì)顯示任何錯(cuò)誤訊息。
    -n 至多顯示 n個(gè)輸出瘫絮。
    -r 使用正規(guī)運(yùn)算式 做尋找的條件涨冀。
    -o 指定資料庫存的名稱。
    -d 指定資料庫的路徑
    -h 顯示輔助訊息
    -V 顯示程式的版本訊息
  • 使用實(shí)例:
    查找和pwd相關(guān)的所有文件:
    locate pwd
    搜索etc目錄下所有以sh開頭的文件:
    locate /etc/sh

find 搜索文件


  • 命令格式:
    find pathname -options [-print -exec -ok ...]
  • 命令功能:
    用于在文件樹種查找文件麦萤,并作出相應(yīng)的處理
  • 命令參數(shù):
    pathname: find命令所查找的目錄路徑鹿鳖。例如用.來表示當(dāng)前目錄,用/來表示系統(tǒng)根目錄壮莹。
    -print: find命令將匹配的文件輸出到標(biāo)準(zhǔn)輸出翅帜。
    -exec: find命令對(duì)匹配的文件執(zhí)行該參數(shù)所給出的shell命令。相應(yīng)命令的形式為'command' { } ;命满,注意{ }和\藕甩;之間的空格。
    -ok: 和-exec的作用相同周荐,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的shell命令,在執(zhí)行每一個(gè)命令之前僵娃,都會(huì)給出提示概作,讓用戶來確定是否執(zhí)行。
  • 命令選項(xiàng):
    -name 按照文件名查找文件默怨。
    -perm 按照文件權(quán)限來查找文件讯榕。
    -prune 使用這一選項(xiàng)可以使find命令不在當(dāng)前指定的目錄中查找,如果同時(shí)使用-depth選項(xiàng)匙睹,那么-prune將被find命令忽略愚屁。
    -user 按照文件屬主來查找文件。
    -group 按照文件所屬的組來查找文件痕檬。
    -mtime -n +n 按照文件的更改時(shí)間來查找文件霎槐, - n表示文件更改時(shí)間距現(xiàn)在n天以內(nèi),+ n表示文件更改時(shí)間距現(xiàn)在n天以前梦谜。find命令還有-atime和-ctime 選項(xiàng)丘跌,但它們都和-m time選項(xiàng)。
    -nogroup 查找無有效所屬組的文件唁桩,即該文件所屬的組在/etc/groups中不存在闭树。
    -nouser 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在荒澡。
    -newer file1 ! file2 查找更改時(shí)間比文件file1新但比文件file2舊的文件报辱。
    -type 查找某一類型的文件,諸如:
    b - 塊設(shè)備文件单山。
    d - 目錄碍现。
    c - 字符設(shè)備文件幅疼。
    p - 管道文件。
    l - 符號(hào)鏈接文件鸵赫。
    f - 普通文件衣屏。
    -size n:[c] 查找文件長度為n塊的文件,帶有c時(shí)表示文件長度以字節(jié)計(jì)辩棒。-depth:在查找文件時(shí)狼忱,首先查找當(dāng)前目錄中的文件,然后再在其子目錄中查找一睁。
    -fstype:查找位于某一類型文件系統(tǒng)中的文件钻弄,這些文件系統(tǒng)類型通常可以在配置文件/etc/fstab中找到者吁,該配置文件中包含了本系統(tǒng)中有關(guān)文件系統(tǒng)的信息窘俺。
    -mount:在查找文件時(shí)不跨越文件系統(tǒng)mount點(diǎn)。
    -follow:如果find命令遇到符號(hào)鏈接文件复凳,就跟蹤至鏈接所指向的文件瘤泪。
    -cpio:對(duì)匹配的文件使用cpio命令,將這些文件備份到磁帶設(shè)備中育八。
    另外,下面三個(gè)的區(qū)別:
    -amin n 查找系統(tǒng)中最后N分鐘訪問的文件
    -atime n 查找系統(tǒng)中最后n24小時(shí)訪問的文件
    -cmin n 查找系統(tǒng)中最后N分鐘被改變文件狀態(tài)的文件
    -ctime n 查找系統(tǒng)中最后n
    24小時(shí)被改變文件狀態(tài)的文件
    -mmin n 查找系統(tǒng)中最后N分鐘被改變文件數(shù)據(jù)的文件
    -mtime n 查找系統(tǒng)中最后n*24小時(shí)被改變文件數(shù)據(jù)的文件
  • 使用實(shí)例:
    查找指定時(shí)間內(nèi)修改過的文件 :
    find -atime -2
    根據(jù)關(guān)鍵字查找 :
    find . -name ".log"
    按照目錄或文件的權(quán)限來查找文件 :
    find /usr/fqw/ -perm 777
    按類型查找 :
    find . -type f -name "
    .log"
    查找當(dāng)前所有目錄并排序:
    find . -type d | sort
    按大小查找文件:
    find . -size +1000c -print

find命令之exec


find是我們很常用的一個(gè)Linux命令对途,但是我們一般查找出來的并不僅僅是看看而已,還會(huì)有進(jìn)一步的操作髓棋,這個(gè)時(shí)候exec的作用就顯現(xiàn)出來了实檀。
exec解釋:
-exec 參數(shù)后面跟的是command命令,它的終止是以;為結(jié)束標(biāo)志的按声,所以這句命令后面的分號(hào)是不可缺少的膳犹,考慮到各個(gè)系統(tǒng)中分號(hào)會(huì)有不同的意義,所以前面加反斜杠签则。
{} 花括號(hào)代表前面find查找出來的文件名须床。
使用find時(shí),只要把想要的操作寫在一個(gè)文件里渐裂,就可以用exec來配合find查找侨颈,很方便的。在有些操作系統(tǒng)中只允許-exec選項(xiàng)執(zhí)行諸如l s或ls -l這樣的命令芯义。大多數(shù)用戶使用這一選項(xiàng)是為了查找舊文件并刪除它們哈垢。建議在真正執(zhí)行rm命令刪除文件之前,最好先用ls命令看一下扛拨,確認(rèn)它們是所要?jiǎng)h除的文件耘分。 exec選項(xiàng)后面跟隨著所要執(zhí)行的命令或腳本,然后是一對(duì)兒{ },一個(gè)空格和一個(gè)\求泰,最后是一個(gè)分號(hào)央渣。為了使用exec選項(xiàng),必須要同時(shí)使用print選項(xiàng)。如果驗(yàn)證一下find命令,會(huì)發(fā)現(xiàn)該命令只輸出從當(dāng)前路徑起的相對(duì)路徑及文件名褥赊。

  • 實(shí)例
    ls -l命令放在find命令的-exec選項(xiàng)中:
    find . -type f -exec ls -l {} ;
    在目錄中查找更改時(shí)間在n日以前的文件并刪除它們:
    find . -type f -mtime +14 -exec rm {} ;
    在目錄中查找更改時(shí)間在n日以前的文件并刪除它們,在刪除之前先給出提示:
    find . -name ".log" -mtime +5 -ok rm {} ;
    -exec中使用grep命令:
    find /etc -name "passwd
    " -exec grep "root" {} ;
    查找文件移動(dòng)到指定目錄 :
    find . -name ".log" -exec mv {} .. ;
    用exec選項(xiàng)執(zhí)行cp命令 :
    find . -name "
    .log" -exec cp {} test3 ;

find命令之barges


在使用 find命令的-exec選項(xiàng)處理匹配到的文件時(shí)拔第, find命令將所有匹配到的文件一起傳遞給exec執(zhí)行。但有些系統(tǒng)對(duì)能夠傳遞給exec的命令長度有限制场钉,這樣在find命令運(yùn)行幾分鐘之后蚊俺,就會(huì)出現(xiàn)溢出錯(cuò)誤。錯(cuò)誤信息通常是“參數(shù)列太長”或“參數(shù)列溢出”逛万。這就是xargs命令的用處所在泳猬,特別是與find命令一起使用。
find命令把匹配到的文件傳遞給xargs命令宇植,而xargs命令每次只獲取一部分文件而不是全部得封,不像-exec選項(xiàng)那樣。這樣它可以先處理最先獲取的一部分文件指郁,然后是下一批忙上,并如此繼續(xù)下去。
在有些系統(tǒng)中坡氯,使用-exec選項(xiàng)會(huì)為處理每一個(gè)匹配到的文件而發(fā)起一個(gè)相應(yīng)的進(jìn)程,并非將匹配到的文件全部作為參數(shù)一次執(zhí)行洋腮;這樣在有些情況下就會(huì)出現(xiàn)進(jìn)程過多箫柳,系統(tǒng)性能下降的問題,因而效率不高啥供; 而使用xargs命令則只有一個(gè)進(jìn)程悯恍。另外,在使用xargs命令時(shí)伙狐,究竟是一次獲取所有的參數(shù)涮毫,還是分批取得參數(shù),以及每一次獲取參數(shù)的數(shù)目都會(huì)根據(jù)該命令的選項(xiàng)及系統(tǒng)內(nèi)核中相應(yīng)的可調(diào)參數(shù)來確定贷屎。

  • 使用實(shí)例:
    查找系統(tǒng)中的每一個(gè)普通文件罢防,然后使用xargs命令來測(cè)試它們分別屬于哪類文件 :
    find . -type f -print | barges file
    在整個(gè)系統(tǒng)中查找內(nèi)存信息轉(zhuǎn)儲(chǔ)文件(core dump) ,然后把結(jié)果保存到/tmp/core.log 文件中:
    find / -name "core" -print | xargs echo "" >/tmp/core.log
    在當(dāng)前目錄下查找所有用戶具有讀唉侄、寫和執(zhí)行權(quán)限的文件咒吐,并收回相應(yīng)的寫權(quán)限:
    find . -perm -7 -print | xargs chmod o-w
    用grep命令在所有的普通文件中搜索hostname這個(gè)詞
    find . -type f -print | xargs grep "hostname"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子恬叹,更是在濱河造成了極大的恐慌候生,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绽昼,死亡現(xiàn)場(chǎng)離奇詭異唯鸭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)硅确,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門目溉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人疏魏,你說我怎么就攤上這事停做。” “怎么了大莫?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵蛉腌,是天一觀的道長。 經(jīng)常有香客問我只厘,道長烙丛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任羔味,我火速辦了婚禮河咽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赋元。我一直安慰自己忘蟹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布搁凸。 她就那樣靜靜地躺著媚值,像睡著了一般。 火紅的嫁衣襯著肌膚如雪护糖。 梳的紋絲不亂的頭發(fā)上褥芒,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音嫡良,去河邊找鬼锰扶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛寝受,可吹牛的內(nèi)容都是我干的坷牛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼很澄,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼漓帅!你這毒婦竟也來了锨亏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤忙干,失蹤者是張志新(化名)和其女友劉穎器予,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捐迫,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乾翔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了施戴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片反浓。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖赞哗,靈堂內(nèi)的尸體忽然破棺而出雷则,到底是詐尸還是另有隱情,我是刑警寧澤肪笋,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布月劈,位于F島的核電站,受9級(jí)特大地震影響藤乙,放射性物質(zhì)發(fā)生泄漏猜揪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一坛梁、第九天 我趴在偏房一處隱蔽的房頂上張望而姐。 院中可真熱鬧,春花似錦划咐、人聲如沸拴念。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽政鼠。三九已至,卻和暖如春送丰,著一層夾襖步出監(jiān)牢的瞬間缔俄,已是汗流浹背弛秋。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國打工器躏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蟹略。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓登失,卻偏偏與公主長得像,于是被迫代替她去往敵國和親挖炬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子揽浙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容