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"