(1) 保留N天的备份文件
注意哦,在shell里面手动删除的时候尽量使用相对路径删除哦,先cd到你要删除书局的目录再删除,害怕误删除嘛。。。但是在shell里面删除文件都建议使用绝对路径哈! 因为如果万一cd的目录不存在了,那么后面实用的相对路径就成了当前目录,就是执行脚本的目录了。这样很危险的!
删除/data下面修改时间是7天以前的文件,用以下两条语句都可以:
find /data -mtime +7 -exec rm -rf {} \;
find /data -mtime +7 |xargs rm -rf
-----实际工作中需求总是更多样化。
需求:
通过综合上述需求,得出: 无论哪天都需要保留前两天工作日的文件。不管节假日的备份文件。因为节假日根本也不备份。
用以下2条命令语句都可以实现:
ls -t /data/*.tar.gz | awk 'NR>2{print "rm -f " $0}' | bash
ls -t /data/*.tar.gz | awk 'NR>2' |xargs rm -f
注意: 用 ls -t 参数来根据mtime对文件进行排序,并且用 /data/*.tar.gz 的方式查找出来的文件名带绝对路径。传给rm的时候才不会因为路径问误删文件。awk只是可以制造命令,真正的执行还是管道给 bash