业务场景:
把当日某个路径中的压缩好的文件拷贝到指定目录。压缩文件的目录里面有几种后缀结尾的文件。且每种文件都有几天的保存期限。
以前我是将需要的某一类后缀文件全部拷贝到指定目录,然后下载,最后删除,这样浪费时间和磁盘空间。所以重新修改了下查看和拷贝的命令
但是我不是专门运维的人员 只会一些简单的命令。
所以 确定了下思路 就去查了下命令
思路如下:
1、确定查询被修改文件的时期,(我是查询当天被修改的文件)
需要用到
-mtime #查询被修改过的指定时间
2、确定文件类型
-type
3、确定文件的后缀名(比如我的是 sql.gz)
regex
4、拷贝(最常用的命令)
cp
4、进行组合
第一个是确定时间:我要查询当日修改的日志
(参考文档:https://blog.csdn.net/hochoy/article/details/83109379)
find /xxxx/xxxx/ -mtime -1
能够看到得到今日修改文件及文件夹
第二个是确定类型为文件
find /xxx/xxx/ -mtime -1 -type f
-type 后面的f 是指文件
其他的还有:
d :目录
l :符号链接
b :块设备
c :字符设备
p :管道文件
s :Socket
能看到第一个文件夹已被过滤了
第三个是我要查询后缀为.sql.gz的
find /xxx/xxx/ -mtime -1 -type f -regex ".*\.sql.gz"
-regex 正则表达式
可以看到只剩下我想要的了
参考文档:https://c.runoob.com/front-end/854
最后一步是拷贝
find /xxx/xxx/ -mtime -1 -type f -regex ".*\.sql.gz" | xargs cp -t /yyy/yyy/yyy
这里还用到了 一个xagrs的命令
参考文档:https://www.runoob.com/linux/linux-comm-xargs.html
以上。