find命令:基於文件屬性查找
find [目錄] -name "文件名*" 表示匹配正則
-maxdepth 1 表示當前目錄
-type(f/d)
-size(+大於/-小於)
-perm(permission)
-exec [命令] {} \;或者+
後面跟一個命令,對前面找到的文件(用大括號表示)
\ 是轉義符
\; 表示找到一個執行一次命令
+ 表示直接執行所有文件
-ok 直接執行後面命令
一些經典例子
查找某個目錄下10天前修改過的文件
find [目錄] -mtime +10
查找三天內修改過的文件
find [目錄] -mtime -3
找到文件並打包(三種)
find . -type f -exec tar c(create)zvf n.tar.gz {} +
find . -type f -exec tar u(update)zvf n.tar.gz {} \;
find . -type f | xargs tar czvf.tar.gz
xargs: 將管道左側的輸出,作爲管道右側命令的輸入,並有切分執行功能
查找目錄下的所有文件中是否包含某個字符串
find . | xargs grep -ri "IBM"
查找目錄下的所有文件中是否包含某個字符串,並且只打印出文件名
find . | xargs grep -ril "IBM"