背景
我有一个正在执行的Jenkins任务,在运行之前,我想要获取一个文件夹的副本并将其移动到另一个不存在的目录,并且是一个动态时间戳。
出于这个论点的目的,我无法创建存储任何东西的变量,它必须在没有它们的情况下完成。我在stackoverflow here上看到了另一个问题,这似乎证实了我的目标。
问题:
实现Linux / Unix的最佳方法是什么?
我有一个想法,但我想检查这是否是最好的方法。首先将目录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 -r /var/www/html/myapp $_
答案 0 :(得分:1)
对我而言似乎是正确的,只是一些小修复:
mkdir -p "/tmp/backup/myapp/$(date +%Y-%m-%d-%H:%M:%S)" && cp -a "/var/www/html/myapp" "$_"
使用双引号来避免空间问题(在您的示例中不需要,但最好是谨慎)。
使用cp -a
复制目录。它的作用是-r|-R
但是它总是保留文件的符号链接和元数据,例如时间戳和所有权。