В настоящее время я запускаю эти две команды для создания быстрой резервной копии каталога. Есть ли способ объединить две команды в одну, чтобы я копировал и переименовывал новый каталог в одну команду?
#cp -R /tf/Custom_App /tf/Custom_App_backups/
#mv /tf/Custom_App_backups/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
Ответы:
Вы должны быть в состоянии сделать только
Однако , если целевой каталог уже существует, это добавит заключительную часть исходного пути к пути назначения, создав
/tf/Custom_App_backups/Custom_App_2017-12-21/Custom_App
, а затем скопировав оставшуюся часть дерева в нем.Чтобы предотвратить это, используйте
/tf/Custom_App/.
в качестве источника. Конечно, в этом случае вам может понадобитьсяrm -r /tf/Custom_App_backups/Custom_App_2017-12-21
сначала, если вы не хотите, чтобы старые файлы лежали там после копии.Разница между
/some/dir
и/some/dir/.
обсуждавшаяся некоторое время назад в cp ведет себя странно, когда. (точка) или .. (точка) - исходный каталогисточник
.
в качестве исходного каталога является использование-T
флага для указанияcp
перезаписать место назначения вместо создания нового члена внутри него.cp
./tf/Custom_app/.
Трюк только то , что мне было нужно.cp -a
тоже работает.cp -a
конечно, появляется также, например, во FreeBSD и OpenBSD, но это все еще не стандартная функция, то есть не указанная в POSIX . (cp -T
это было упомянуто ранее, кажется, GNUism, это не в POSIX, и не в BSD, насколько я вижу.)Кроме того, вы можете сделать это так:
Это позволит вам заранее указать свое местоположение. Также обратите внимание, что он использует суффикс.
/.
Это позволяет вам только копировать содержимое и исключать содержащую его папку - в данном случае этоCustom_app
папка.источник