Kopiowanie plików w terminalu
Kopiowanie treści jednego katalogu do drugiego jest bardzo prostym zadaniem. Masz jednak wiele opcji robienia tego. Linux jest pobłogosławiony wieloma narzędziami do manipulowania plikami i katalogami poprzez różne działania.
Wszystkie kroki są wykazane na Ubuntu 18.04.1. Początkowo stwórzmy garść fikcyjnych plików do pracy.
$ mkdir -v dir_a
Teraz utwórzmy manekin za pomocą dotyku.
$ Touch Dummy 1… 10
Utwórzmy kolejny folder w Dir_a z garstką fikcji.
$ mkdir -v dir_b
$ Touch Dummy 1… 10
Teraz cała struktura katalogu dir_a wygląda tak.
$ Tree Dir_a
Polecenie CP
CP Polecenie jest zdecydowanie najczęstszym narzędziem do kopiowania plików. Jest to narzędzie, które jest domyślnie przyczynia się do dowolnego systemu Linux. Kopiowanie plików i katalogów są jedynym celem CP. Obsługuje szeroką gamę funkcji.
To jest podstawowa struktura CP Komenda.
$ cp
Na przykład zróbmy kopię Manekin1 Plik o nazwie Manekin1_copy.
$ cp manekin1 manekin1_copy
Teraz spróbujmy skopiować wiele plików naraz. W przypadku takiej operacji CP wymaga, aby miejsce docelowe było katalogiem. Tutaj użyję ekspresji wieloznacznej, aby złapać wszystkie atrapa pliki i umieść je w ~/Pobieranie informator.
$ cp manekin* ~/pliki do pobrania
Co powiesz na skopiowanie katalogu?
$ cp -vr dir_a dir_a_copy
Tutaj użyliśmy dwóch różnych flag. Zróbmy ich szybki podział.
Chcesz podążać za symbolicznymi linkami? Dodaj flagę „-L”.
$ cp -lvr
Powiedzmy, że katalog docelowy ma już plik o tej samej nazwie. Jeśli chcesz uniknąć zastąpienia, użyj flagi „-n”. Zapewni to, że w przypadku konfliktu CP nie zastąpi pliku.
$ cp -nv
Jeśli wykonujesz wrażliwą akcję kopiowania/wklejania, lepiej mieć najlepszą kontrolę nad tym, co się dzieje, prawda? W takim przypadku użyj flagi „-i”. Oznacza tryb interaktywny, w którym CP poprosi o potwierdzenie za każdym razem, gdy pojawia się konflikt.
$ cp -i
Jeśli jesteś bardziej zainteresowany, strona Man jest zawsze jedną z najlepszych dokumentacji. Dowiedz się więcej o CP.
$ man cp
polecenie mv
Narzędzie MV jest podobne do narzędzia CP. Jednak zamiast kopiowania MV przenosi pliki i katalogi. W porównaniu do CP, jest to prostszy.
Struktura polecenia MV jest podobna do CP.
$ mv
Poruszyć zawartość Dir_a Do dir_a_copy, Uruchom następujące polecenie.
$ mv -v dir_a/ dir_a_copy
Tutaj flaga „-V” jest dla gadatliwy tryb. Jeśli chcesz przenieść tylko zawartość dir_a, użyj zamiast tego. W takim przypadku katalog docelowy musi istnieć wcześniej.
$ mv -v dir_a/* dir_a_copy
Narzędzie MV nie ma wiele do pracy. Aby uzyskać wszystkie dostępne opcje, sprawdź stronę mężczyzny.
$ man mv
Polecenie rsync
Jest to jedno z najbardziej popularnych i potężnych narzędzi do kopiowania plików, używane głównie do tworzenia kopii zapasowych. Utrzymuje możliwość kopiowania plików przez zdalne połączenie. W przeciwieństwie do CP i MV, ma również mnóstwo zaawansowanych opcji kopiowania plików, które oferują najwyższe dostosowanie jego zachowania.
Rsync jest głównie słynie z algorytmu transferu delta, który radykalnie zmniejsza ilość danych, które należy wymienić. W przypadku zdalnej synchronizacji oszczędza to dużo przepustowości.
Rsync na ogół nie jest wstępnie zainstalowany w żadnej dystrybucji Linux. Jednak ze względu na swoją popularność jest teraz dostępny na wszystkich głównych dystrybucjach Linux. Użyj PKG.org, aby znaleźć pakiet RSYNC dla dystrybucji. Zakładając, że zainstalowałeś rsync, zacznijmy.
Po pierwsze, podstawowa struktura poleceń RSYNC. Jest dość podobny do CP.
$ rsync
Przed rozpoczęciem, oto garść popularnych argumentów rsync.
Sprawdźmy je w akcji. Po pierwsze, kopia katalogu. Uruchom następujące polecenie.
$ rsync -vr dir_a/ dir_a_copy
Aby uzyskać bardziej szczegółowe dane wyjściowe, użyjmy flagi „-vv”.
$ rsync -vv -r dir_a/ dir_a_copy
Teraz sprawdźmy fajną część rsync. Omówiliśmy, w jaki sposób RSync inteligentnie kopiuje tylko modyfikowane pliki, zapisując przepustowość i zapisywanie dysku. Czas sprawdzić to w akcji. W tym przykładzie akcja zostanie wykonana w ramach Dir_a informator.
$ rsync -vv-no-whole plik manekin* dir_b/
Pomimo włączonej transmisji Delta, RSYNC może nie zastosować jej podczas przeprowadzania lokalnego transferu danych.
Teraz sprawdźmy funkcję Dry Run. Przed uruchomieniem jakiegokolwiek polecenia rsync w rzeczywistości zawsze ważne jest, aby je wcześniej przetestować. Tutaj pojawia się suchy bieg. Rsync wyprowadzi to, co się stanie, jeśli polecenie rzeczywiście działało.
$ rsync -anvr dir_a/ dir_a_copy
Rsync może również pracować ze zdalnymi katalogami, nie ma problemu. Wszystko, czego potrzebuje, to właściwe połączenie SSH z skonfigurowanym klawiszem SSH.
$ rsync
Chcesz wykonać operację ruchu? Mówiąc to z perspektywy Rsync, RSYNC skopiuje zawartość katalogu źródłowego, a następnie usunie treść źródła.
$ rsync -v--remove-source-files
Sprawdź wynik operacji.
$ Tree Dir_a
$ Tree dir_a_copy
Końcowe przemyślenia
CP i RSync są najczęstszymi narzędziami, których można użyć do kopiowania plików w folderze na terminalu Linux. Oba są również naprawdę dobre do scenariuszy. Pamiętaj tylko, aby przetestować funkcje przed wdrożeniem.
Cieszyć się!