我正在尝试创建一个脚本,该脚本将根据当前时间和日期创建一个文件夹。然后我需要脚本将文件从源文件夹复制到新创建的文件夹。然后我需要它将文件夹从第二个源文件夹复制到原始源文件夹,覆盖其中的所有内容。
以下是我尝试过的方法,但以史诗般的方式失败了。
#!/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/