Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 复制并创建一个不存在日期时间戳的目录_Linux_Shell_Unix_Mkdir_Cp - Fatal编程技术网

Linux 复制并创建一个不存在日期时间戳的目录

Linux 复制并创建一个不存在日期时间戳的目录,linux,shell,unix,mkdir,cp,Linux,Shell,Unix,Mkdir,Cp,背景: 我有一个正在执行的Jenkins任务,在运行之前,我想获取一个文件夹的副本,并将其移动到另一个不存在且是动态时间戳的目录 为了这个论点的目的,我不能创建变量来存储任何东西,它必须在没有变量的情况下完成。我在stackoverflow上看到了另一个问题,这似乎证实了我要采用的方法 问题: 对于Linux/Unix,实现这一点的最佳方法是什么 下面我有一个想法,但我想看看这是否是最好的方法。它首先创建目录mkdir-p,目录的位置/tmp/backup/myapp/,日期时间戳作为最终文件夹

背景:

我有一个正在执行的Jenkins任务,在运行之前,我想获取一个文件夹的副本,并将其移动到另一个不存在且是动态时间戳的目录

为了这个论点的目的,我不能创建变量来存储任何东西,它必须在没有变量的情况下完成。我在stackoverflow上看到了另一个问题,这似乎证实了我要采用的方法

问题:

对于Linux/Unix,实现这一点的最佳方法是什么

下面我有一个想法,但我想看看这是否是最好的方法。它首先创建目录
mkdir-p
,目录的位置
/tmp/backup/myapp/
,日期时间戳作为最终文件夹名
$(日期+%Y%m%d%H%m%S)
,然后,它调用一个递归副本
cp-r
,并提供要复制的源目录
/var/www/html/myapp
,然后将原始位置url作为目标传递
$

建议答案

mkdir -p /tmp/backup/myapp/$(date +%Y%m%d%H%M%S) && cp -r /var/www/html/myapp $_

对我来说这似乎是正确的,只是一些小的修正:

mkdir -p "/tmp/backup/myapp/$(date +%Y-%m-%d-%H:%M:%S)" && cp -a "/var/www/html/myapp" "$_"
使用双引号避免空格问题(在您的示例中,不需要双引号,但最好谨慎)

使用
cp-a
复制目录。它的作用类似于
-r |-r
,但在addiction中,它始终保留符号链接和元数据,如文件的时间戳和所有权