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

标签 linux bash shell redhat

你能帮我写一个脚本吗,我只想找到超过2GB的日志文件并将它们复制到同一目录中的存档文件夹中。我只是写了一个find命令,它不起作用,如果有人可以帮助,我们将不胜感激我。

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

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

前 - abcd.log -----复制到 -----> abcd.log-08-22-2016

我的命令目前不起作用

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

最佳答案

你可以这样做:

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

我所做的添加/修改:

  • -name '*.log' 仅搜索日志文件,因为我们只对这些文件感兴趣。如果不确定,您也可以查找具有任何名称的文件,在这种情况下只需省略 -name '*.log

  • $(date -I) 是命令替换,输出将为格式为 YYYY-mm-dd 的今天日期,您还可以定义自定义格式,检查男人日期

  • \; 结束 find-exec 操作;

关于Linux find 命令并同时复制并重命名它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39080182/

相关文章:

linux - 如何根据 awk 打印中的前缀获取字段?

linux - 如何通过 shell linux 使用 grep 精确搜索文件中的字符串?

android - openswan l2tp 服务器到 android 客户端

reactjs - 错误 : Child Compilation failed - Module. createRequire 不是函数

c - 我是否需要在 fork 之后在父进程中等待()?

linux - 如何使用 wget spider 从 url 列表中识别损坏的 url 并保存损坏的

git - 如何编写打开 GitBash shell 并在 shell 中运行命令的批处理文件?

linux - 匹配任何列中的数据,并更改同一行中所有其他列的数据

arrays - 对读入数组的元素进行排序

string - bash:在多个其他字符串中查找字符串