Wie kann ich ein Verzeichnis kopieren und im selben Befehl umbenennen?


13

Derzeit führe ich diese beiden Befehle aus, um eine schnelle Sicherung des Verzeichnisses zu erstellen. Gibt es eine Möglichkeit, die beiden Befehle zu einem zu kombinieren, sodass ich das neue Verzeichnis in einem Befehl kopiere und umbenenne?

#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

Wie wäre es, Alias ​​oder Funktion für diese beiden Dinge zu definieren;)
LinuxSecurityFreak

Antworten:


19

Sie sollten in der Lage sein, nur zu tun

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

Allerdings , wenn das Zielverzeichnis bereits existiert, wäre dies der letzte Teil des Source - Pfad zu dem Zielpfad anhängen, Erstellen /tf/Custom_App_backups/Custom_App_2017-12-21/Custom_App, und kopieren Sie dann den Rest des Baumes innerhalb dieser.

Um dies zu verhindern, verwenden Sie /tf/Custom_App/.als Quelle. In diesem Fall möchten Sie natürlich rm -r /tf/Custom_App_backups/Custom_App_2017-12-21zuerst, wenn Sie nicht möchten, dass ältere Dateien nach dem Kopieren herumliegen.

Der Unterschied zwischen /some/dirund /some/dir/.wurde vor einiger Zeit in cp diskutiert . (Punkt) oder .. (Punkt Punkt) sind das Quellverzeichnis


Eine Alternative zur Übergabe .als Quellverzeichnis besteht darin, das -TFlag zu verwenden, cpum das Ziel zu überschreiben, anstatt ein neues Mitglied darin zu erstellen.
Toby Speight

@TobySpeight, ... in GNU cp.
Ilkkachu

1
Der /tf/Custom_app/.Trick ist genau das, was ich brauchte.
Martin Bonner unterstützt Monica

cp -afunktioniert auch.
flow2k

1
@ flow2k, insbesondere GNU-Dienstprogramme bieten eine Vielzahl von nicht standardmäßigen Optionen, von denen viele sehr nützlich sind. cp -aNatürlich erscheint es auch in zB FreeBSD und OpenBSD, aber es ist immer noch keine Standardfunktion, dh nicht von POSIX spezifiziert . ( cp -Tdas früher erwähnt wurde, scheint ein GNUismus zu sein, es ist nicht in POSIX und nicht in den BSDs, soweit ich sehen kann.)
ilkkachu

1

Alternativ können Sie dies folgendermaßen tun:

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

Auf diese Weise können Sie Ihren benutzerdefinierten Speicherort im Voraus angeben. Beachten Sie auch, dass das Suffix verwendet wird. Auf /.diese Weise können Sie nur den Inhalt kopieren und den enthaltenen Ordner ausschließen. In diesem Fall handelt es sich um den Custom_appOrdner.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.