Як можна скопіювати каталог і перейменувати його в одній команді?


15

В даний час я виконую ці дві команди, щоб створити швидку резервну копію каталогу. Чи є спосіб поєднати дві команди в одну, щоб я скопіював і перейменував новий каталог в одну команду?

#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

1
cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
jesse_b

Як щодо визначення псевдоніму або функції для цих двох речей;)
LinuxSecurityFreak

Відповіді:


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/.обговорювалася деякий час назад в сп поводиться дивно , коли. (крапка) або .. (крапка) - це вихідний каталог


Альтернативою передачі .в якості вихідного каталогу є використання -Tпрапора для вказівки cpзамінити призначення, а не створення нового члена всередині нього.
Toby Speight

@TobySpeight, ... в GNU cp.
ilkkachu

1
/tf/Custom_app/.Трюк тільки те , що мені було потрібно.
Мартін Боннер підтримує Моніку

cp -aтакож працює.
flow2k

1
@ flow2k, зокрема, утиліти GNU мають безліч нестандартних опцій, багато з яких дуже корисні. cp -aЗвичайно, з'являється також у напр. FreeBSD та OpenBSD, але це все ще не стандартна функція, тобто не визначена POSIX . ( cp -Tщо згадувалося раніше, здається, GNUism; це не в POSIX, і не в BSD, наскільки я бачу.)
ilkkachu

1

Або ви можете це зробити так:

mkdir /tf/Custom_App_backups/Custom_App_2017-12-21 # prepare the target location
cp -R /tf/Custom_app/. /tf/Custom_App_backups/Custom_App_2017-12-21 # copy only the contents

Це дозволить вам заздалегідь вказати власне місце розташування. Також зауважте, що він використовує суфікс. /.Це дозволяє лише копіювати вміст та виключати папку, що містить його - у цьому випадку це Custom_appпапка.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.