Скопируйте и создайте каталог с меткой даты и времени, где он не существует

Справочная информация:

У меня выполняется задача Jenkins, и перед запуском я хочу взять копию папки и переместить ее в другой каталог, который не существует и является динамической меткой времени.

Для целей этого аргумента я не могу создавать переменные для хранения чего-либо, это должно выполняться без них. Я видел этот другой вопрос о stackoverflow здесь, и это, кажется, подтверждает мой подход.

Вопрос:

Как лучше всего добиться этого для Linux / Unix?

У меня есть идея ниже, но я хочу проверить, лучший ли это подход или нет. Он начинается с создания каталога mkdir -p с местоположением каталога /tmp/backup/myapp/ и меткой времени даты в качестве окончательного имени папки $(date +%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 $_

person Graham    schedule 30.11.2015    source источник


Ответы (1)


Мне это кажется правильным, небольшое исправление:

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

Используйте двойные кавычки, чтобы избежать проблем с пространством (в вашем примере это не нужно, но лучше быть осторожным).

Используйте cp -a для копирования каталогов. Он работает как -r|-R, но при зависимости всегда сохраняет символические ссылки и метаданные, такие как временные метки и право собственности на файлы.

person Giuseppe Ricupero    schedule 30.11.2015