Jak mogę skopiować katalog i zmienić jego nazwę w tym samym poleceniu?


15

Obecnie uruchamiam te dwa polecenia, aby utworzyć szybką kopię zapasową katalogu. Czy istnieje sposób na połączenie tych dwóch poleceń w jedno, aby kopiować i zmieniać nazwę nowego katalogu w jednym poleceniu?

#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

Co powiesz na zdefiniowanie aliasu lub funkcji dla tych dwóch rzeczy;)
LinuxSecurityFreak

Odpowiedzi:


21

Powinieneś być w stanie to zrobić

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

Jeśli jednak katalog docelowy już istnieje, dopisze to ostatnią część ścieżki źródłowej do ścieżki docelowej, tworząc /tf/Custom_App_backups/Custom_App_2017-12-21/Custom_App, a następnie skopiując resztę drzewa w tym katalogu.

Aby temu zapobiec, użyj /tf/Custom_App/.jako źródła. Oczywiście w takim przypadku możesz rm -r /tf/Custom_App_backups/Custom_App_2017-12-21najpierw chcieć , jeśli nie chcesz, aby starsze pliki leżały tam po kopii.

Różnica między /some/diri /some/dir/.była dyskutowana jakiś czas temu w cp, kiedy zachowuje się dziwnie. (kropka) lub .. (kropka kropka) to katalog źródłowy


Alternatywą dla przekazania .jako katalogu źródłowego jest użycie -Tflagi, aby nakazać cpzastąpienie miejsca docelowego, zamiast tworzenia w nim nowego członka.
Toby Speight,

@TobySpeight, ... w GNU cp.
ilkkachu

1
/tf/Custom_app/.Sztuką jest tylko to, co potrzebne.
Martin Bonner wspiera Monikę

cp -adziała również.
flow2k

1
@ flow2k, w szczególności narzędzia GNU mają wiele niestandardowych opcji, z których wiele jest bardzo przydatnych. cp -aoczywiście pojawia się również w np. FreeBSD i OpenBSD, ale wciąż nie jest to standardowa funkcja, to znaczy nie określona przez POSIX . ( cp -Twspomniano wcześniej, że wydaje się GNUizmem, nie ma go w POSIX i nie w BSD, o ile widzę.)
ilkkachu

1

Alternatywnie możesz to zrobić w następujący sposób:

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

Umożliwi to wcześniejsze określenie niestandardowej lokalizacji. Zauważ też, że używa przyrostka. /.Pozwala to tylko skopiować zawartość i wykluczyć jej folder zawierający - w tym przypadku jest to Custom_appfolder.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.