一、要求:

  查找/data/目录下的2019年修改过的以.yml结尾的文件,将这些文件保留文件的目录结构打包,然后拷贝到/home目录下

二、查找文件

  1、查找以.sl结尾的文件:

    find /data -name *.yml

  2、查看这些文件的修改时间:stat命令

    stat 文件名字 

# stat deploy.yml
File: ‘/data/deploy.yml’
Size: 347183 Blocks: 680 IO Block: 4096 regular file
Device: fd03h/64771d    Inode: 70479172 Links: 1
Access: (0744/-rwxr--r--) Uid: ( 0/ root) Gid: ( 1000/shareuser)
Access: 2019-05-23 10:03:19.626759310 +0800
Modify: 2019-05-23 10:00:04.495621129 +0800
Change: 2019-05-23 10:00:04.495125281 +0800
Birth: -

 

3、拷贝文件(保留目录结构) 

  cp -r 目录 目录  

  如果没有对应的目录,需要使用命令“mkidr -p”来创建

三、打包

  首先进入到文件目录保存的目录下,然后使用tar打包

  tar -zcvf data.tar.xz *

 

四、使用shell脚本完成文件的查找及打包

#!/bin/bash

for file in `find /data/ -name *.yml -type f`
do
  if [[ `stat $file |awk -F[:,-] '/Modify/{print $2}' |sed 's/ //g'` -eq 2019 ]];then
    dir1=`echo $file |awk -F[/] '{print $3}'`
    dir2=`echo $file |awk -F[/] '{print $4}'`
  [  [ -e /data/scripts/tar/${dir1}/${dir2} ]] || mkdir -p /data/scripts/tar/${dir1}/${dir2}
    cp $file /data/scripts/tar/${dir1}/${dir2}
  fi
done

cd  /data/scripts/tar 
tar -zcvf data.tar.xz * 
mv data.tar.xz /home

 

posted on 2019-05-23 11:53  宅女士  阅读(306)  评论(0编辑  收藏  举报