代码之家  ›  专栏  ›  技术社区  ›  SLS

Linux find命令,同时复制和重命名它们

  •  2
  • SLS  · 技术社区  · 8 年前

    您能帮我写一个脚本吗?我只想找到2GB以上的日志文件,并将它们复制到同一目录中的存档文件夹中。我只是写了一个查找命令,但它不起作用,如果有人能帮助我,我会很感激。

    ex-主日志文件夹-/vsapp/logs/ -应用程序1,应用程序2,应用程序3 app1、app2和app3文件夹中有很多日志。

    所以我想在超过2GB的日志文件夹中找到日志,并将它们复制到具有不同名称和今天日期的存档文件夹中。

    不包括abcd。日志-----复制到----->abcd.log-08-22-2016年

    我现在的命令不起作用

    find $i/* -type f -size +2G -exec cp '{}' $i/$arc/{}-$date
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   heemayl    8 年前

    您可以执行以下操作:

    find /src -type f -name '*.log' -size +2G -exec cp {} /dest/{}-$(date -I) \;
    

    添加/修改:

    • -name '*.log' 只搜索日志文件,因为我们只对这些文件感兴趣。您也可以查找任何名称的文件,如果不确定,只需忽略 -name '*.log 那样的话

    • $(date -I) 是命令替换,输出将是今天的日期格式 YYYY-mm-dd ,还可以定义自定义格式,选中 man date

    • 结束 -exec 的作用 find 具有 \;