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

时间:2017-07-12 00:24:18

标签: linux bash scripting debian

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

以下是我尝试过的内容,它以一种非常史诗般的方式失败了。

#!/bin/bash

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

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

1 个答案:

答案 0 :(得分:2)

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

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

实际上根本不需要引用,这样写:

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

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

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

cp -r dir1/* dir2/