linux下一切皆文件。
Find命令是程序员每天都会使用的命令,是一个无处不在是命令,是linux中最有用的命令之一。你可以使用它在任意一个目录(及子目录)中搜索文件,你也可以定义一些特定的条件,如按文件名、文件类型、用户甚至是时间节点去查找文件。
毋庸置疑的是在强悍的功能背后,它的使用对比其他的命令会复杂的多,比较难。下边就跟你们分享几个find命令的简单却又中级的用法。
按照访问/更改/修改时间查找文件
假如服务器被入侵unix 按时间查找文件,你可以借助find查询到近日被访问、修改、更改的文件
备注:min=分钟time=天更改重视于对内容的更改,修改重视于对权限的修改
查找1个小时内被访问过的文件
# find . -amin -60
查找1天内被访问过的文件
# find / -atime -1
查找在1个小时内被更改的文件
# find . -mmin -60
查找在1天内被更改的文件
# find / -mtime -1
查找1小时内状态被改变的文件
# find . -cmin -60
查找1天内状态被改变的文件
# find / -ctime -1
查找比某文件新或某文件旧的文件
环境上日志文件数不胜数,想删掉某个时间之前的文件,该如何处理?
备注:newer(更改时间)、anewer(访问时间)、ctime(更改时间,包括权限属性的更改)
列举比1.log更旧的文件
find ./ ! -newer 1.log |xargs ls -al
列举比1.log更新的文件
find ./ -newer 1.log |xargs ls -al
多条件组合查找
有时我们要查找的文件并不止一个类目这个时侯我们可以使用多条件组合的形式去查找,常用的条件组合参数有-a(and),-o(or),!(not)。
查找普通文档和符号链接文档:
find ./ -type f -o -type l
查找名称为skill的符号链接文档
find ./ -name "*skill" -a -type l
查找log文档以外的其他文档:
find ./ ! -name "*.log"
对所查找到的文件进行操作
文件我们早已查找到了,怎么对它们做些哪些呢?
对于以查找到的文件linux操作系统论文,进行操作万能公式:
find . -name "*something*" -exec action {} somearguments ;
命令解释:find.-name"something"找出所有名子包含something的文件;
-exec执行前面的命令,action任意命令名;{}是find的结果集合
somearguments,命令须要的参数unix 按时间查找文件红旗linux5.0,就是反例中的-r;;结束命令
举例:
借助Find命令对文件进行备份
find . -name "*something*" –exec cp {} /backup/{}.backup /;
借助Find命令对文件进行删掉
find . -name "*something*" –exec rm –I {} /;
下边列一些比较常用的:
rm 命令,用于删除find查找出来的文件 mv 命令,用于重命名查找出的文件 ls -l 命令,显示查找出的文件的详细信息 md5sum, 对查找出的文件进行md5sum运算,可以获得一个字符串,用于检测文件内容的合法性 wc 命令,用于统计计算文件的单词数量,文件大小等 执行任何Unix的shell命令 执行你自己写的shell脚本,参数就是每个查找出来的文件名
find命令是一个极其优秀但又博大精深的工具,须要我们去探求和发觉,欢迎补充~