linux - 根据日期/时间创建目录并将文件复制到其中?

标签 linux bash scripting debian

我正在尝试创建一个脚本,该脚本将根据当前时间和日期创建一个文件夹。然后我需要脚本将文件从源文件夹复制到新创建的文件夹。然后我需要它将文件夹从第二个源文件夹复制到原始源文件夹,覆盖其中的所有内容。

以下是我尝试过的方法,但以史诗般的方式失败了。

#!/bin/bash

d="/home/$(date +%d-%m-%y")"
mkdir "$d"
cp /home/test "$d"
cp /home/test2 /home/test

我知道我不必定义变量,因为副本之间的时间应该是几秒钟而不是一天,但我想确定并且老实说,我有兴趣学习使用变量在脚本中。

最佳答案

这里有一个太多的双引号:

d="/home/$(date +%d-%m-%y")"

其实这里根本不需要引号,这样写:

d=/home/$(date +%d-%m-%y)

在脚本的其余部分,如果你想复制目录,你需要使用cp -r 而不是简单的cp

最后,请注意,当您执行 cp -r dir1 dir2 时,当 dir2 已经存在时,dir1 将被复制到 中dir2,而不是覆盖它的内容。也就是说,它将创建 dir2/dir1。如果dir1不包含隐藏文件,那么你可以这样写来覆盖dir2的内容:

cp -r dir1/* dir2/

关于linux - 根据日期/时间创建目录并将文件复制到其中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046410/

相关文章:

xml - 验证xml文件+如何将xmllint命令设置为静默模式

c++ - CMake:不支持的 GNU 版本 -- 不支持高于 8 的 gcc 版本

linux - pretty-print makefile

scripting - 纳米黑客 : most useful tiny programs you've coded or come across

linux - 脚本与 ./file_name 一起工作,但是当我使用 sh file_name 启动它时出现错误

bash - 在不退出终端的情况下保留源代码的 shell 脚本

java - Postgres 9.2 - 恢复转储正在翻译转义的 unicode 并破坏 java 序列化对象

bash - shell 更新后在 .bashrc 中找不到 shopt 命令

linux - bash 别名问题

arrays - 使用文件名列表填充和读取数组