zoukankan      html  css  js  c++  java
  • find 查找文件

    一、要求:

      查找/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
  • 相关阅读:
    hdu 4747 Mex( 线段树? 不,区间处理就行(dp?))
    hdu 5692 Snacks(dfs时间戳+线段树)
    hdu 1864 最大报销额(背包)
    hdu 2955 Robberies(概率背包)
    hdu 4055 Number String (基础dp)
    4516: [Sdoi2016]生成魔咒
    2555: SubString
    后缀自动机·小记
    CF 1114 E. Arithmetic Progression
    CF 1114 D. Flood Fill
  • 原文地址:https://www.cnblogs.com/carriezhangyan/p/10911068.html
Copyright © 2011-2022 走看看