首页 > 解决方案 > 如何在 UNIX 中创建新文件夹并将早于特定日期的“.log”文件从某个位置复制到该文件夹​​?

问题描述

我需要做一些测试,我想在我的 Unix 服务器(Redhat Linux 6.9(64 位))的 Dev 实例中创建一个临时目录,并将文件复制到我想要执行测试的那个目录中。

标签: unix

解决方案


以下脚本应该执行您所描述的操作:

#! /bin/bash

read -p 'enter name of new folder: ' dir
if [ -e "$dir" ]; then
  echo 'A folder with the specified name already exists. Choose a different name.'
else
  mkdir "$dir"

  while read -r ; do
    mystring="${REPLY:2}"
    mystring="$(sed 's/\//_/g' <<<"$mystring")"
    cp "$REPLY" "$dir/$mystring"
  done < <(find / -mtime +30 -name '*.log' -type f)
fi

您可以根据find需要调整底部的命令:

  • +30表示超过 30 天的文件,并且
  • /指定要用于搜索日志文件的搜索目录。

在这里,我假设您要在根目录中搜索日志文件/


推荐阅读