-
概述
- find 基礎
-
背景
- 查找文件
- 人的記憶能力, 是有限的
- 計算機里的文件數量, 雖然不是無限, 但是也不少
- 要去找那些 記不清楚的文件, 必然要用查找
- 查找文件
-
准備
-
OS
- centos7
-
用戶
- root
- 其他用戶在執行中, 可能會遇到權限的問題
- 這里就不講了...
- 其他用戶在執行中, 可能會遇到權限的問題
- root
-
1. find
-
概述
- 強大的文件查找工具
-
功能
- 查找文件
- 約束條件查找文件
- 對查找后的內容, 可以執行操作
-
命令結構
> find [path] [options] [opt]
-
opt
-
概述
- find 之后的操作
-
默認
- 打印完整的文件路徑
-
其他
- 這個以后再說
- opt
- 這個以后再說
-
2. path
-
概述
- path 參數
-
path
- 搜索路徑
- 這個算是第一個 約束條件
- 約束了地址, 可以讓 查找范圍更加精確
- 搜索路徑
-
例子
# 1. 搜索 當前路徑 下, 所有文件 > find # 2. 搜索 特定路徑 下, 所有文件 > find /etc # 3. 搜索 多個路徑 下, 所有文件 > find ~ /etc
3. 約束: 文件名
-
概述
- 添加 文件名 文件名約束
-
-name
- 功能
- 添加 文件名 的限定條件
- 支持 通配符
- 功能
-
例子
# 精確查找文件名 > find /etc/ -name 'passwd' # 基於 通配符 的 模糊查找 > find /etc/ -name 'pass*'
-
結果
- -name 里的條件, 匹配的是 文件名, 或者 目錄名
- 如果中間路徑帶有有 關鍵字 的話, 不會被 匹配出來
- -name 里的條件, 匹配的是 文件名, 或者 目錄名
4. 約束: 正則路徑
-
概述
- 更加強大的 約束
- 約束的對象, 是 文件路徑
-
-regex
- 功能
- 添加 路徑 的限定條件
- 正則
- 功能
-
例子
> find /etc/ -regex '.*pass.*'
-
結果
- 路徑匹配
- 路徑中含有關鍵字, 也會被 搜索出來
- 能力更強大
- 路徑中含有關鍵字, 也會被 搜索出來
- 路徑匹配
-
其他
- 還有 -regextype 可以指定 正則類型
5. 約束: 用戶
-
概述
- 以 用戶 作為約束條件
-
-user
- 功能
- 限定 文件 或 目錄 的所屬用戶
- 功能
-
例子
> find /etc -user "tss"
-
其他
- 如果用戶不存在, 會有異常提示
- 如果要找沒有用戶的文件, 可以用 -nouser
6. 約束: 用戶組
-
概述
- 以 用戶組 作為約束條件
-
-group
- 功能
- 限定 文件 或 目錄 的所屬用戶組
- 功能
-
例子
> find /etc -group "tss"
-
其他
- 如果用戶組不存在, 會有異常提示
- 如果要找沒有用戶組的文件, 可以用 -nogroup
7. 約束: 文件權限
-
概述
- 以 文件執行權限 作為約束
-
-perm
- 功能
- 限定 文件權限
- 功能
-
例子
# 方案1: 直接查找 權限 > find /etc -perm 755
-
其他
- 這個 選項 的表達方式很靈活, 我只選了最簡單的一種
- 如果需要了解, 請參看 man
- 這個 選項 的表達方式很靈活, 我只選了最簡單的一種
8. 約束: 文件類型
-
概述
- 以 文件類型 作為約束
-
-type
-
功能
- 約束類型
-
類型
- b: 塊設備
- c: 字符設備
- d: 目錄
- p: 管道
- f: 文件
- l: 連接
- s: socket
- D: door(Solaris 專用)
-
-
例子
> find /etc -type f
9. 后續
-
沒錯, 這次就這么多
- 這些東西算是 最簡單, 最常用 的了
-
后面命令, 參數會稍微 復雜一些
- 都寫一起, 其實不太好消化
- 我有點懶得寫了
- 最近產能不足, 干脆分成兩篇吧...
ps
-
ref
- 每天一個linux命令(19):find 命令概覽
- 這個博客, 是我見到的 每天一個 linux 命令 系列, 最老的博客, 應該是 真正的原作 吧
- 每天一個linux命令(22):find 命令的參數詳解
- linux find -regex 使用正則表達式
- 每天一個linux命令(19):find 命令概覽
-
通配符和正則
- 這個肯定是不一樣的啊
- 有空區分一下
- 這個肯定是不一樣的啊