find命令簡介:
shell
find命令:在目錄成次結構中實時、精確查找文件,查找時對文件系統進行遍歷,可以進行遞歸查找,查找速度比較慢。find用於安全
文件查找時根據指定的條件進行精確找找,會將查找結果中符合指定條件的文件所有列出來。它的使用權限是全部用戶。ide
grep與find不一樣,grep用文本搜索,其對象是文本流工具
find命令使用格式:oop
find [options] [path...] [conditions] [actions]post
path:默認爲當前目錄
測試
conditions:默認爲查找指定路徑下的全部文件
ui
actions:默認爲顯示
spa
find命令的用法:命令行
options:選項
-xdev:不在其它文件系統的目錄中搜索。
-mindepth <n>:搜索文件時至少要深刻到指定目錄的第 n 層子目錄。
-follow:若是符號連接到目錄,則跟隨符號連接進入。默認狀況下,find不跟隨連接。
-daystart:當使用與事件相關的測試時,將當天的開始時間做爲時間戳,而不是默認值(從當前時間倒退24個小時)僅做用於命令行出現的測試。
conditions:查找條件
-name "filename":按文件名稱查找,支持文件名通配符。
例:在當前目錄下查找文件名以L或l開頭的文件
-iname "filename":按文件名查找,忽略大小寫字母,支持文件名通配符。
例:在當前目錄下查找文件名以L或l開頭的文件
-user UserName:按文件所屬的屬主查找
-user GroupName:按文件所屬的屬組查找
例:查找當前目錄下文件所屬的屬主爲hadoop的全部文件
-uid UID:根據文件所屬的UID查找文件
n: 查找文件所屬的UID爲n的全部文件
+n:查找文件所屬的UID大於n的全部文件
+n:查找文件所屬的UID小於大於n的全部文件
-gid GID:根據用的GID查找文件
n: 查找文件所屬的GUID爲n的全部文件
+n:查找文件所屬的GUID大於n的全部文件
+n:查找文件所屬的GID小於大於n的全部文件
例:查找當前目錄下文文件所屬組的gid爲123的全部文件
例:+n:查找文件所屬的UID大於1000的全部文件
例:查找文件所屬的UID小於1000的全部文件
-empty:查找全部爲空的文件
例:查找全部的空文件
-nouser:查找全部沒有屬主的文件
-nogroup:查找全部沒有屬組的文件
例:當前目錄下查找全部沒有屬主的文件
-type:根據文件類型進行查找
常見的文件類型有:
f:普通文件
d:目錄文件
c:字符設備文件
l:符號連接文件
b:塊設備文件
p:管道文件
s:套接字文件
例: 查找/var/spool/postfix/public/目錄下的全部套接字文件
-size:根據用戶指定文件的大小進行查找(經常使用單位K|M|G)
n:查找指定條件下大小爲n的文件
例:在當前目錄下查找大小爲1M的文件
+n:查找指定條件下文件大於n的文件
例:在當前目錄下查找大於10k的文件
-n:查找指定條件下文件小於n的文件
例:在當前目錄下查找小於4k的文件
根據時間戳查找文件:
-atime:單位爲天
+n:在指定條件下查找n+1天前被訪問過的文件
-n:在指定條件下查找n天以內被訪問過的文件
n:查找從當前時間算起前n天之內被訪問過的文件
-ctime:單位爲天
+n:在指定條件下查找n+1天前被改變的文件
-n:在指定條件下查找n天以內被改變的文件
n:查找從當前時間算起前n天之內被改變的文件
-mtime:單位爲天
+n:在指定條件下查找n+1天前修改過的文件
-n:在指定條件下查找n天以內被修改過的文件
n:查找從當前時間算起前n天之內修改過的文件
-amin:單位爲分鐘
+n:在指定條件下查找n+1分鐘前被訪問過的文件
-n:在指定條件下查找n分鐘內被訪問過的文件
n:查找從當前時間算起前n分鐘被訪問過的文件
-cmin:單位爲分鐘
+n:在指定條件下查找n+1分鐘前被改變的文件
-n:在指定條件下查找n分鐘以內被改變的文件
n:查找從當前時間算起前n分鐘之內被改變的文件
-mmine:單位爲分鐘
+n:在指定條件下查找n+1分鐘前修改過的文件
-n:在指定條件下查找n分鐘以內被修改過的文件
n:查找從當前時間算起前n分鐘之內修改過的文件
例:在/var目錄下查找9天以前被訪問過的文件
例:在/var目錄下查找20分鐘之內被訪問過的文件和3分鐘之內被訪問過的文件
例:在/var目錄下查找前3天被修改過的文件
-perm:在指定條件下根據文件的權限進行查找
MODE:查找時按精確的文件的權限進行匹配
例:在/tmp目錄下查找權限爲641的全部文件
-MODE:在指定條件下只要文件的屬主、屬主或其餘用戶的任意權限與對應指定權限中的任意一位匹配就可以被查
找到。一般用於查找文件的特定權限位是否存在。
例:在/tmp/mtest/目錄下其餘用戶具備可執行權限的文件
+MODE:在指定條件下只要文件中的權限包含指定的權限就會被查找到。
例:在/tmp/mtest目錄下查找屬組具備讀和執行權限,其餘用戶具備執行權限的全部文件。
actions:
-print:在指定條件下以將匹配的文檔輸出到標準輸出(默認find執行該動做)
-ls:在指定條件下以長格式輸出文件的信息
-exec command { } \;:在指定條件下以對匹配的文檔執行所給的shell命令。形式爲:注意{ }和\;之間的空格
-ok:和-exec做用相同。只可是以種更安全的模式執行該參數所給的shell命令。在執行每一個命令以前,都會給出提示,
讓用戶肯定是否執行
例:在/tmp/mtest目錄下查找屬組具備讀和執行權限,其餘用戶具備執行權限的全部文件,並以長格式顯示。
|xargs commond: xargs是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。它把一個數據流分割爲一些足夠小
的塊,以方便過濾器和命令進行處理。xargs從管道從文件的輸出中讀取數據,它可以捕獲一個命令的輸出,而後傳遞給另一個命令。
例:在/tmp/目錄下查找空文件並將其刪除.