文件查找:
1.locate
locate passwd|head 查找passwd关键字的文件
locate passwd|head /var/lib/mlocate/mlocate.db 查询结果相同
updatedb 更新mlocate.db数据库
/etc/updatedb.conf 配置文件
2.find(基于目录树的实时查找)
格式: find 目录 文件
find / -name passwd 查找名字为passwd的文件
-i 不区分大小写
-size 文件大小 (+1M大于 1M等于 -1M小于)
-type d/f 类型 d目录 f文件
-perm 权限 (+300只要有3就可以 300等于3 -300必须有3)
-not 不是
-user 用户
-group 组
-o 或者(执行exec时,-n个o就要打-exec n遍)
-a 并且
find / -perm +100 -exec chmod u-x {} \; (非交互执行)
find / -perm +100 -ok chmod u-x {} \; (交互执行)
find / -type d -exec echo {} &> /tmp/echo.txt \;
find / -typee d -print | xargs echo {} &> /tmp/echo1.txt ?
=>find ...|xargs 代替exec,解决命令行参数过长,系统响应慢
练习:
1.后缀改名
i=a.bak改为.orig
mv $i ${i%.bak}.orig => %从右到左去除
for i in $(find ./ -type f -name "*.bak";do mv $i ${i%.bak).orig;done
2.复制文件,加.bak
mkdir /tmp/test
touch file {1..10}
find ./ -type f -exec cp {} {}.bak \;
3.查找不是.bak结尾的文件
find ./ -type f -not -name "*.bak"
阅读(1636) | 评论(0) | 转发(0) |