我正在尝试创建一个脚本,该脚本将根据当前时间和日期创建一个文件夹。然后我需要脚本将文件从源文件夹复制到新创建的文件夹。然后我需要它将文件夹从第二个源文件夹复制到原始源文件夹,覆盖其中的所有内容。
以下是我尝试过的内容,它以一种非常史诗般的方式失败了。
#!/bin/bash
d="/home/$(date +%d-%m-%y")"
mkdir "$d"
cp /home/test "$d"
cp /home/test2 /home/test
我知道我不必定义变量,因为副本之间的时间应该是秒而不是一天失效,但我想确保并且老实说,我有兴趣学习使用变量在脚本中。
答案 0 :(得分:2)
这里有一个太多的双引号:
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/