2016-08-22 76 views
2

你能帮我写一个脚本,我只想找到超过2GB的日志文件,并将它们复制到同一目录中的存档文件夹中。我只是写一个find命令它不工作,欣赏有人能帮助我。Linux找到命令,并在同一时间复制并重命名

前主日志文件夹 -/vsapp/logs/ - app1,app2,app3 在app1,app2和app3文件夹中有很多日志。

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

前 - abcd.log -----副本-----> abcd.log - 2016年8月22日

我此刻的命令,它不工作

find $i/* -type f -size +2G -exec cp '{}' $i/$arc/{}-$date 

回答

2

你可以这样做:

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

附加/修改我提出:

  • -name '*.log'仅搜索日志文件,因为我们只对这些文件感兴趣。你可以寻找与任何名称的文件太多,如果不能确定,只是省略-name '*.log在这种情况下

  • $(date -I)是命令替换的输出是今天在格式YYYY-mm-dd日期,你也可以定义自定义格式,检查man date

  • find-exec行动\;

+0

发现。 -type f -size + 2G -exec cp {} archive/{} - date \;试试这个,但不会工作,它不是复制,即时通过创建一个文件大小为2GB的文件进行测试。 – SLS

+0

@SLS再次检查我的命令。你需要找到。 -type f -size + 2G -exec cp {} archive/{} - $(date -I)\;' – heemayl

+0

Nop朋友,它不会复制到归档文件夹。 – SLS