find 排除 Linux 命令之 find 用法

2021-10-11 08:32:05 字數 1960 閱讀 2345

1. 概述

使用linux server命令列系統時,經常需要進行特定檔案的查詢,主要的查詢命令是find及grep,區別如下:

1.1 find

根據檔案屬性進行查詢,如檔名、檔案大小、檔案所有者、訪問時間、修改時間、是否為空等

1.2 grep

根據檔案內容查詢,會對檔案的每一行按照給定的模式進行匹配

1.3 locate

不搜尋具體目錄,而是搜尋乙個資料庫(/var/lib/locatedb),該資料庫含有本地所有檔案資訊,系統每天僅更新該資料庫一次,因此有時候查不到最新變動過的檔案,不過可以執行該命令前可執行updatedb命令手動更新該資料庫

1. 基本格式:

find [path] [option] [expression]

2. 常見options:

2.1 按型別查詢

-type f | d | l | b | c | s | p

f 普通檔案 d 目錄 l 符號連線 c 字元裝置 b 塊裝置 s 套接字 p fifo

2.2 按使用者名稱、使用者組查詢

-user username -group groupname

2.3 按檔案大小查詢

-size +10m

+ 大於 -小於 c 位元組 k 千位元組 m 兆 g 千兆

2.4 按檔名稱或許可權查詢

-name a.c -perm 644

2.5 按檔案訪問時間或檔案狀態改變時間

-amin +10 十分鐘前被訪問過的檔案

-amin -10 十分鐘內被訪問過的檔案

-atime -1 最近1天內被訪問供的檔案

同理, -a替換為-c時白哦是檔案狀態改變時間

2.6 按搜尋目錄層級查詢

-maxdepth 3 **目錄內查詢

-mindepth 3 從**目錄開始查詢

-maxdepth 3 -mindepth 3 第**目錄查詢

2.7 對查詢結果執行命令

-ok 互動式執行linux命令

-exec 批量靜默之行linux命令

2.8 查詢條件邏輯運算

-a 且

-o 或者

-! 或 -not 條件取反

1. 從根目錄查詢 且排除/proc/路徑 屬於tom的檔案或檔案組

find / ! -path "/proc/*" -user tom

2. 對匹配的結果執行ls -lh 命令

find / ! -path "/proc/*" ! -path "/etc/x" -user tom -exec ls -lh {}

3. 刪除大於80k 小於100k的檔案

find / -type f -size +80k -size -100k -delete

find / -type f -size +80k -size -100k | xargs rm -rf

4. 將指定路徑下.c檔案更改為.**件

find ./ -name "*.c" | awk -f "." '' | xargs -i -t mv ./{}.c ./{}.h

5. 查詢所有屬於tom的檔案總的有多少兆

find . -user tom -type f -exec du -m {} ; | awk ' end { print "total used:

Linux命令之find命令

在檔案系統上查詢符合條件的檔案 檔案查詢 locate,find 非實時查詢 資料庫查詢 locate 實時查詢 find locate 依賴於事先構建的索引,索引的構建是在系統較為空閒時自動進行 週期性任務 手動更新資料庫 updatedb 索引構建過程需要遍歷整個根檔案系統,極消耗資源 工作特點...

find命令 如何排除某個目錄

find path src emacs prune o print a o和 一樣都有短路性 實際可以理解為這樣 find condition1 prune print find path src emacs a prune o print,如果find path src emacs返回真 就是找到...

Linux命令之find命令詳解

linux命令之find命令詳解 find命令是乙個在unix檔案系統中查詢檔案的常用命令,可以進行很多條件查詢。讓我們來看一些find命令的例項。語法 find 路徑 約束條件 如何查詢在檔名中含有指定關鍵字的檔案?下面這條命令查詢在 etc 目錄下所有檔名中含有 mail 的檔案。find et...