歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統文件查找命令find的基本使用及其高級用法

Linux系統文件查找命令find的基本使用及其高級用法

日期:2017/2/28 14:48:00   编辑:Linux教程

在Linux系統維護工作時,經常會查找文本文件。

例如:假如:web服務器經常出現延遲,或者經常會出現一些參數的錯誤信息。

1、考慮帶寬問題

2、考慮我的配置文件問題:

例如:是不是被其它人更改過所造成的參數、延遲等信息,這樣我們就會用到find命令來查找文件的相關信息,並加以修改。

如果我們做系統運維這方面的工作時,會經常用到find命令來幫助我們完成文件的查找工作,所以我們要認真學習find命令的使用及其相關的高級用法:

文件查找:locate、find

locate:
非實時,模糊匹配,查找是根據全系統文件數據庫進行的;
# updatedb, 手動生成文件數據庫


find:
實時
精確
支持眾多查找標准
遍歷指定目錄中的所有文件完成查找,速度慢;


查找路徑:默認為當前目錄
查找標准:默認為指定路徑下的所有文件
處理運作:默認為顯示


1、find命令的一般形式為;


find 查找路徑 查找標准 查找到以後的處理運作
find pathname -options [ -exec -ok ...]

2、find命令的參數;

pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print: find命令將匹配的文件輸出到標准輸出。
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式為'command' { } \;,注意{ }和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。

3、find命令選項

-name :按照文件名查找文件
For example:在/etc目錄下查找文件名passwd的文件
# find /etc -name 'passwd'
-iname:按照文件名查找文件,且不區分大小寫
For example:在/etc目錄下查找文件名passwd的文件
# find /etc -iname 'passwd'

-user:按照文件屬主來查找文件
For example:在/tmp目錄下查找屬主為hdoop的文件或目錄
# find /etc -user hdoop

-group :按照文件所屬的組來查找文件
For example:在/tmp目錄下查找屬組為hbase的文件或目錄
# find /tmp -group hbase

-uid:UID:當某個用戶被刪除,用戶所屬的文件UID沒有被刪除,在這個情況下就可以使用此選項
For example:用戶hdoop的UID為600,如果將hdoop用戶刪除,那如何在/tmp查找文件或目錄的屬主為hdoop以前的文件呢
# find /tmp -uid 600

-gid:GID:當某個組被刪除,用戶所屬的文件GID沒有被刪除,在這個情況下就可以使用此選項
For example:組hbase的GIDD為666,如果將hbase組刪除,那如何在/tmp查找文件或目錄的屬組為hbase以前的文件呢
# find /tmp -gid 666


-nouser:查找沒有有效所屬主的文件,即該文件所屬的主在/etc/passwd中不存在
For example:查找/tmp目錄沒有屬主的文件
# find /tmp -nouser

-nogrouop:查找沒有有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
# find /tmp -nogroup

-type:以文件類型查找文件
在Linux文件系統中常用到的文件類型有:
b:塊設備文件
d:目錄
c:字符設備文件
p:管道文件
l:符號鏈接文件
f:普通文件
s:套接字設備文件
p:管道設備文件
For example:查找/tmp目錄下所有普通文件
# find /tmp -type f

-size: [+|-]文件大小查找文件
默認單位是字節,當我們去找10M的文件時,所有9點幾兆的文件都滿足條件。
#k:(#代表數字)
#M:(#代表數字)
#G:(#代表數字)
For example:查找/tmp目錄下文件大小為10MB的文件
# find /tmp -size 10M
組合條件:
-a:與條件
-o:或條件
-not:非條件
For example:查找/tmp目錄下沒有屬主並且類型為目錄的文件
# find /tmp -nouser -a -type d -ls
假如把-a換成-o選項:則說明沒有屬主或是目錄文件,兩個選項滿足一個即可。
# find /tmp -not -type d
說明在/tmp目錄查找非目錄類型的文件
查找/tmp目錄下,非目錄類型,並且還不是套接字類型的文件
# find /tmp -not -type d -a -not -type s
# find /tmp -not \( -type -d -o -type -s \)
兩者都可以實現目的:

Copyright © Linux教程網 All Rights Reserved