1. 程式人生 > >linux&unix find命令

linux&unix find命令

whereis

whereis 程式主要用來檢視linux or unix 外部程式和幫助文件或者其他文件的位置

通過它,你可能發現一些沒有聽別人說過的文件,用法,主要是 通過查詢/bin /usr/bin
等環境變數路徑來查詢。

    whersis ls 
    輸出:
    ls: /bin/ls /usr/share/man/man1/ls.1.gz
    /bin/lsls程式所在的位置
    ls.1.gz  就是我們使用man ls 看到的文件,在使用的時候解壓

locale

locale程式的任務就是搜尋一個特殊的資料庫(該資料庫中包含所有可公共訪問的檔案

的路徑名),查詢所有包含特定模式的路徑名。該資料庫自動維護,並自動更新。locale程式
的語法為 locale [-bcirS] pattern
-b base 匹配路徑名的最後一部分,即所謂的檔名或基名
-c count 統計匹配檔案的次數
-i ignore 匹配的時候忽略大小寫
-r regex 匹配使用正則表示式,這個跟grep裡面的一樣
-S statistics 統計選擇,顯示系統上的locate資料庫資訊
這些選擇都服合GNU規則,所以可以組合使用

    locale -rb '*temp$'
    locale:無效選項 -- r
    試用“locale --help”或“locale --usage”以獲取更多資訊。
    經過測試發現,ubuntu系統內建的locale 程式不支援上面的選項
    上面的選擇在unix 上面的locale才支援,bsd的只支援
    locale [options] name 
    選擇只有倆個,可以 man locale 看一下,反正我從來沒有用locale
    得到我想想要的還是用find的吧,ubuntu使用者

find

find path… test… action…
通過觀察我們可以發現路徑可以有多個 test查詢條件也可以有多個,action
也可以有多個find命令也繼承了unix or linux的特點,學習困難使用容易哈哈。

path

    find /etc /bin /usr  # 可以使用多個路徑組合查詢
    在bash shell 裡面 如果不指定路徑的話,則是預設的當前路徑即 ./ 
    下面的命令是等價的:
    find test
    find ./ test
    find . test

test

test 就是測試,這裡就是查詢條件主要的查詢條件有
-type [df] #d directory 路徑,f file 檔案
-name pattern # pattern 和 grep 的模式語法一樣
-iname pattern # 忽略大小寫
-size [-+]n[cbkMG] - 表示小於 +表示大於 預設是等於 c 位元組 b 塊 k 千位元組 m g 大家應該很熟悉
-empty #空檔案(等價於 -size 0c)
修改時間 min 分鐘 time 天數 a access 訪問 c change 狀態改變 m modified 內容修改
-amin -5 五分鐘之內訪問
-amin +5 五分鐘前訪問
-atime -365 一年之內訪問的
-atime +365 一年前訪問的
修改a 為 [cm]就是改變的 or 內容修改的
這些條件可以並列使用 find /temp -type f -name test -size -10c -amin 5

特別的可以通過使用!,條件取反,以為! 在linux有特殊含義 需要轉義字元 ! or 強引用 ’!‘

find ! -name ‘*.jpg’ # 查詢所有後綴名不是jpg的檔案

action

通過前面倆步找到了想要的檔案or目錄,下面可以對找到的東西進行處理了,可以顯示 刪除
等操作,反正你可以想到的命令都可以使用的哦。

    -print #將路徑名寫入到標準輸出 這個是預設的
    -fprint file # 輸出寫入到檔案
    -ls #顯示長目錄列表
    -fls file #寫到檔案
    -delete #刪除檔案
    -exec command {} \; #執行command,{}指示匹配的檔名 注意{} 和 \;之間的空格,沒有會報錯滴!
    -ok command {} \; #和exec 一樣,只是在做操作前需要確認 輸入y 回車確定,直接回車什麼也不做
    做一個測試輸出查詢到的檔名使用echo
    find -name 't*' -exec echo {} \;
    修改查詢到的檔案許可權為 700
    find -name 't*' -exec chmod 700 {} \;
    刪除下面倆條語句都可以可以:
    find -name 't*' -exec rm {} \;
    find -name 't*' -delete 

xargs

處理查詢到的檔案的時候使用 exec 處理command 有多個目標檔案就會有執行command多少次,使用xargs可以
把找到的檔案通過管道,當做引數一次處理

    xargs [-prt]  [-istring] [command [argument...]]
    find -name 't*' | xargs echo {} # 看看輸出你就會發現和 exec 的不同
    {} . ./Linux過濾器.md ./深入理解計算機系統總結.md ./disamy-mbr.md
    -p 每次action前 請求確認 y 是 不輸則否
    -t 輸出命令本身意思是:tell me what are you doing
    -r 告訴xargs 如果沒有輸入引數,則不執行命令(xargs 預設執行一次)
    -i insert ,當你需要在xargs裡面多次使用引數的時候比如
    find -name 't*' | xargs -i echo {} {} 
    find -name 't*' | xargs -i mv {} ~/backup/{}.old

Summary

我認為查詢命令特別是find 命令,可以作為我們的重要的夥伴來培養,你越是熟悉它
它就可以提高你的工作效率,特別是在處理大量檔案的時候,這個是必不可少的小夥伴了
以前我剛開始的時候總是不喜歡用find 因為老是記不住這些命令太長了,現在我就通過
記錄來幫助自己更好的使用它,我想只要我們堅持,unix or linux 是不會令我們失望的
畢竟在20世紀70年代的東西還一直在影響著這個世界,一些工具程式30年前被使用
30 年後照樣被使用。希望學習一些,就像酒一樣的技能,隨著時間的延續,越來越吃香哈哈。

相關推薦

linux&unix find命令

whereis whereis 程式主要用來檢視linux or unix 外部程式和幫助文件或者其他文件的位置 通過它,你可能發現一些沒有聽別人說過的文件,用法,主要是 通過查詢/bin /usr/bin 等環境變數路徑來查詢。 wh

linux unix Find 命令

xargs在使用f i n d命令的- e x e c選項處理匹配到的檔案時, f i n d命令將所有匹配到的檔案一起傳遞給e x e c執行。但有些系統對能夠傳遞給e x e c的命令長度有限制,這樣在f i n d命令執行幾分鐘之後,就會出現溢位錯誤。錯誤資訊通常是“引數列太長”或“引數列溢位”。這就是

三、Linux/UNIX操作命令積累【gzip、jar、tar、find、crontab】

        在使用Linux/UNIX下,經常會使用文字介面去設定系統或作業系統,作者本人在工作的過程也在不斷接觸這方面的命令,所以為此特醞釀、準備、開始了本文的編寫。本文主要記錄自己平時遇到的一

Linuxfind命令

and 字符 執行 access 訪問時間 etc {} mod 文件大小 根據文件名搜索   find /etc -name init   在etc中查找文件名為init的文件   find /etc -name *init*   在etc中查找文件名包含init的文件

Linuxfind命令的使用

find為什麽要使用find命令? Linux系統中有著成千上萬的文件,如果你想要找到自己想要的文件,一款查找軟件是必不可少的,而locate是根據其生成的數據庫進行查找,雖然速度會略快,但非實時查找,有些新的文件或目錄是匹配不到的,而且locate是模糊匹配,而find命令為實時查找,且為精確匹配,如

Linuxfind命令

ssi express nbsp 目錄 ati 通配符 查找文件 符號鏈接 fin   find命令能夠迅速在指定範圍內查找到文件,其使用基本語法:   find 【OPTION】 【path....】 【expression】 如   $find /etc/ -name

Linuxfind命令與文件名後綴

centos find命令 find命令:find命令是用於搜索文件的,which是在環境變量中搜索,whereis是在準備好的庫裏搜索,locate是通過數據文件進行搜索。在最小化安裝的系統中一般locate命令是需要自己安裝的,,安裝的命令是:yun install -y mlocate安裝完後,

Linux/Unix基本命令(二)

distrib *** ... 空間 arch time spool 但是 報錯 基本命令-2壓縮和歸檔打包:即歸檔,類似於旅遊之前收拾行李壓縮:為了減少占用的磁盤空間,可以做備份,在網絡上傳輸時節省網絡帶寬。打包壓縮軟件windows:winrar 360壓縮 好壓 7z

Linuxfind命令詳解

Linux find find:實時查找工具,通過遍歷指定起始路徑下文件系統層級結構完成文件查找: 工作特性: 查找速度略慢: 精確查找: 實時查找: 用法: find [OPTIONS][查找起始路徑][查找條件

linux查詢find命令及刪除7天前的檔案

find ./ -mtime +5 |xargs rm -rf 語句寫法: find 對應目錄 -mtime +天數 -name "檔名" -exec rm -rf {} \; 例1:   find /usr/local/backups -mtime +10 -name "*.*" -exec

Linuxfind命令用法全匯總,看完就沒有不會用的!

分用 想要 單個 ges 基本上 特定 cda size 以及 Linux 查找命令是Linux系統中最重要和最常用的命令之一。查找用於根據與參數匹配的文件指定的條件來搜索和查找文件和目錄列表的命令。查找可以在各種條件下使用,您可以通過權限,用戶,組,文件類型,日期,大小等

linuxfind命令例項

find命令用來在指定目錄下查詢檔案的命令,和locate不同,find命令是實時精確查詢,不做模糊匹配,但是可以使用萬用字元查詢,相對更精確。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案,並且將查詢到的子目錄和檔案全

Linux/Unix常用命令彙總

Linux/Unix常用命令彙總 Linux中最常用的命令,應熟練使用 ls:檢視檔案資訊 clear:清屏 cd:切換工作目錄 pwd:顯示當前路徑 mkdir:建立目錄 rm:刪除檔案 cp:拷貝

Linuxfind命令

find命令用來在指定目錄下查詢檔案。格式為“find [查詢路徑] 尋找條件 操作“ 任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。 多次

Linuxfind命令用法全彙總

Linux 查詢命令是Linux系統中最重要和最常用的命令之一。查詢用於根據與引數匹配的檔案指定的條件來搜尋和查詢檔案和目錄列表的命令。查詢可以在各種條件下使用,您可以通過許可權,使用者,組,檔案型別,日期,大小等可能的條件查詢檔案。 第一部分:查詢名稱查詢檔

Linuxfind命令基本使用方法

Linux中find命令是系統中查詢檔案的命令,可以幫助使用者快速找出自己所需要的檔案。 通過檔名查詢 find -name 檔名 find /etc/ -name passwd ###查詢/etc目錄下的passwd 通過檔案巢狀層數查詢 find

Linux中用find命令找出隱藏檔案和目錄

[[email protected] log]# find /t -name ".*" -printffind: missing argument to `-printf'[[email protected] log]# find /t -name ".*" -print/t/hom

Linux中用find命令找出隱藏文件和目錄

is-a efault modules mes logout http 隱藏文件 direct ner [root@localhost log]# find /t -name ".*" -printffind: missing argument to `-printf‘[

Linuxfind命令在根目錄下查詢不到檔案

  你遇到過linux下root使用者執行find命令按檔名在根目錄下查詢不到指定檔案的情況嗎?如果你遇到這種情況,你分析可能有哪幾種原因導致?這裡記錄一下這個有意思的問題,包括問題場景和解決方法。 問題現象   實現一個工具,需要在root命令下執行普通使用者user1下的stop_

Linuxfind命令在根目錄下查找不到文件

comm which user 搜索 and 返回 咨詢 問題解決 not 你遇到過linux下root用戶執行find命令按文件名在根目錄下查找不到指定文件的情況嗎?如果你遇到這種情況,你分析可能有哪幾種原因導致?這裏記錄一下這個有意思的問題,包括問題場景和解決方法。