grep
??按照文件內(nèi)容查找文件
grep -R "struct task_struct {" /usr/src/ # 在/usr/src/中查找 包含 "文本" 的文件
grep -R "xxxx" /usr/src/ -n # 顯示行號(hào)
find
??-name
find / -name *.mp3
??-type
find / -type f(普通文件) | c(字符設(shè)備) | d(目錄) | p(管道) | b(塊設(shè)備) | s(socket) | l(符號(hào)鏈接)
??-size
默認(rèn)單位512B --> 0.5k --> 一個(gè)扇區(qū)的大小
-M: 不能'm' -- find / -size +3M -size -7M #查找 3~7M的文件
-k: 不能'K' -- find / -size +47k -size -89k #查找47k~89k的文件
??-maxdepth
列出當(dāng)前目錄下有多少目錄
find ./ -maxdepth 1 -type d #默認(rèn)遞歸找, -maxdepth指定遞歸層級(jí)
find ./ -maxdepth 1 -type d | wc l #輸出數(shù)量
??-exec
find ./ -maxdepth 1 -name "*.sh" -exec ls -lh {}\;
find ./ -maxdepth 1 -name "*.sh" 表示查詢文件
-exec 表示執(zhí)行
ls -lh 要執(zhí)行的語(yǔ)句
{} 要執(zhí)行的結(jié)果在大括號(hào)里, 含義: find命令的結(jié)果放到{}中
\; ';'結(jié)束標(biāo)記, 需要用轉(zhuǎn)義字符轉(zhuǎn)義
###############################
-exec代表后面緊接著要執(zhí)行的命令
exp: find ./ -maxdepth 1 -name "*.sh" -ok rm {} \; # 查找并刪除, -ok給出刪除提示
??xargs
xargs 是分批將數(shù)據(jù)放入緩沖區(qū)進(jìn)行輸出, 而不是一次性將結(jié)果放入緩沖區(qū)
xargs 是以NULL '\0' 為依據(jù)進(jìn)行分割
搜索后使用 ls -lh輸出, xargs配合管道'|'使用
find ./ -maxdepth 1 -name "*.sh" | xargs ls -lh
??-print0
touch test\ test.mp3
find ./ -maxdepth 1 -type f -print0 | xargs -0 ls -lh
??-atime
訪問(wèn)時(shí)間: 天
系統(tǒng)的日志文件路徑: /var/log/
當(dāng)前系統(tǒng)的日志文件: /var/log/syslog
??-amin
訪問(wèn)時(shí)間: 分鐘
??-mtime
文件內(nèi)容修改時(shí)間: 天為級(jí)別
find ./ -mtime +5 -exec ls -lh {} \; # 列出5天以前修改過(guò)內(nèi)容的文件
-mtime -5: 5天以內(nèi)
??-mmin
文件內(nèi)容修改時(shí)間: 分鐘為級(jí)別
??-ctime
文件屬性修改時(shí)間: 天
??cmin
文件屬性修改時(shí)間: 分鐘