Come posso copiare una directory e rinominarla con lo stesso comando?


15

Attualmente sto eseguendo questi due comandi per creare un backup rapido della directory. C'è un modo per combinare i due comandi in uno, in modo che io stia copiando e rinominando la nuova directory in un comando?

#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,

Che ne dici di definire l'alias o la funzione per quelle due cose;)
LinuxSecurityFreak

Risposte:


21

Dovresti essere in grado di fare solo

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

Tuttavia , se la directory di destinazione esiste già, ciò aggiungerebbe la parte finale del percorso di origine al percorso di destinazione, creando /tf/Custom_App_backups/Custom_App_2017-12-21/Custom_Appe quindi copiando il resto dell'albero all'interno di quello.

Per evitare ciò, utilizzare /tf/Custom_App/.come fonte. Naturalmente, in quel caso potresti voler rm -r /tf/Custom_App_backups/Custom_App_2017-12-21prima, se non vuoi che i file più vecchi siano lì dopo la copia.

La differenza tra /some/dired è /some/dir/.stata discussa qualche tempo fa in cp si comporta stranamente quando. (punto) o .. (punto punto) sono la directory di origine


Un'alternativa al passaggio .come directory di origine consiste nell'utilizzare il -Tflag per indicare cpdi sovrascrivere la destinazione anziché creare un nuovo membro al suo interno.
Toby Speight,

@TobySpeight, ... in GNU cp.
ilkkachu,

1
Il /tf/Custom_app/.trucco è proprio quello di cui avevo bisogno.
Martin Bonner supporta Monica il

cp -afunziona anche.
flow2k,

1
@ flow2k, le utility GNU in particolare hanno molte opzioni non standard, molte delle quali molto utili. cp -aovviamente appare anche in FreeBSD e OpenBSD ma non è ancora una caratteristica standard, cioè non specificata da POSIX . ( cp -Tche è stato menzionato in precedenza sembra un GNUismo, non è in POSIX, e non nei BSD per quanto posso vedere.)
Ilkkachu,

1

In alternativa, puoi farlo in questo modo:

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

Ciò ti consentirà di specificare in anticipo la tua posizione personalizzata. Inoltre, nota che utilizza il suffisso /.Questo ti consente di copiare solo i contenuti ed escluderne la cartella contenente - in questo caso è la Custom_appcartella.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.