天天看點

Linux學習-查找檔案

whereis

用來檢視與特定指令相關的檔案:二進制(可執行)檔案,源檔案,文檔檔案

whereis不搜尋整個檔案系統,隻檢視那些此類檔案極可能存在的目錄。

如:/bin,/sbin,/etc,/usr/share/man

whereis command

command是希望查找的指令名稱

輸出是程式所處的可執行檔案的路徑名,源檔案的路徑位置,以及說明書頁的路徑位置。

選項:

-b  隻顯示可執行檔案的路徑名

-m  隻顯示聯機手冊中的檔案

-s  隻顯示源檔案

locate

搜尋一個特殊的資料庫(該資料庫中包含所有可公共通路的檔案的路徑名),查找所有包含特定模式的路徑名。

該資料庫自動維護,并定期更新。

locate  pattern

pattern是在路徑名中查找的模式。

選項:

-r  使用正規表達式

-c  顯示比對檔案的總數,而不顯示實際的檔案名

-i  忽略大小寫

-b  隻比對路徑名的最後一部分,即檔案名或基名。(最後一個/後的部分)

find

通過搜尋目錄樹查找檔案

搜尋一個或多個目錄樹,根據指定的測試條件,查找滿足特定标準的檔案。一旦搜尋完成,find将對查找到的檔案執行某種動作。

動作可以是檔案名的顯示,删除檔案,顯示檔案資訊,将檔案傳遞給另一條指令等。

為了運作find,需要指定3件事:目錄路徑,測試,動作。

路徑:檢視是以的路徑,檢查這些路徑所表示的整個目錄樹。

測試:對遇到的每個檔案,find應用指定的測試條件。建立一個滿足測試标準的所有檔案的清單。

動作:一旦搜尋完成,find就對清單中的每個檔案執行指定的操作。

測試

測試

檔案名
-name pattern 包含pattern的檔案名
-iname pattern 包含pattern的檔案名(不區分大小寫)
檔案特征
-type [df] 檔案類型:d=目錄,f=普通檔案
-perm mode 設定為mode的檔案權限
-user userid 屬主為userid
-groups groupid 組為groupid
-size [-+]n[cbkMG] n[字元(位元組),塊,千位元組,兆位元組,吉位元組]
-empty 空檔案(大小=0)
通路時間,修改時間
-amin [-+]n n分鐘之前通路
-anewer file fiel檔案之後通路
-atime [-+]n n天之前通路
-cmin [-+]n n分鐘之前狀态改變
-cnewer file file檔案之後狀态改變
-ctime [-+]n n天之前狀态改變
-mmin [-+]n n分鐘之前修改
-mtime [-+]n n天之前修改
-newer file file檔案之後修改

ps:

+和-分别代表大于或小于

使用-name 時若用通配符,則要用引号引起。

以位元組作為機關測試檔案大小時,find假定讨論的是檔案的内容,而不是使用的磁盤空間。

當以塊,千位元組,兆位元組,吉位元組為機關測試檔案大小時,find假定讨論的是磁盤空間。

測試求反

可以通過 ! 對測試求反。

! 的兩側必須各留一個空格,并且必須引用 ! 。(\!  或  ‘!')

處理檔案權限錯誤消息

将标準錯誤重定向到/dev/null

2> /dev/null

動作

動作

-print 将路徑名寫入到标準輸出
-fprint file 同-print;将輸出寫入到file
-ls 顯示長目錄清單
-fls file 同-ls;将輸出寫入到file
-delete 删除檔案
-exec command{}\; 執行command,{}訓示比對的檔案名
-ok command{}\; 同-exec;但是在運作command之前先确認

ps:

如果不指定動作,-print是預設動作。

-exec就像在指令行上鍵入指令一樣,在指令中,{}用來指代find找到的檔案清單。為了表明指令的末尾,必須以;結尾。

-exec為每個檔案生成一條單獨的指令。

處理找到的指令

xargs可以運作任何使用參數指定的指令,參數通過标準輸入傳遞給該程式。

xargs [-prt] [istring] [comand[argument]]

command是希望運作的指令,string是占位符,argument是從标準輸入讀取的參數。

-i選項允許使用{}作為占位符(預設),占位符将在指令運作之前被參數取代。

-p  在指令生成時顯示每條指令,在運作指令前請求許可

-t  在運作過程中顯示每條指令,不可與其他選項一起使用

-r  如果沒有輸入參數,則不運作指令

繼續閱讀