To trochę zabawne, istnieje wiele sposobów, w jakie narzędzia wiersza poleceń Linuksa są znacznie lepsze niż narzędzia Windows, ale jedna rzecz, której nie znalazłem, jest robocopy . Robocopy jest o wiele bardziej wszechstronny cp
i nie mogę wymyślić, jak zrobić to, co chcę z narzędziami Linux.
Szczególny przypadek użycia polega na tym, że mam dwa katalogi z przeważnie podobnymi plikami, ale jeden ma nowsze pliki źródłowe, a drugi zawiera pliki zawartości, których nie ma drugi katalog, i być może nowsze pliki źródłowe (dla strony internetowej). Chcę skopiować pliki z drugiego katalogu do poprzedniego, dodając nowe pliki zawartości i takie, ale nie zastępując nowszych plików w katalogu docelowym.
Próbowałem wymyślić, jak to zrobić w Linuksie, może przez pół godziny, zdecydowałem, że prawdopodobnie będę musiał nauczyć się skryptowania bash lub czegoś, co chcę, a potem zdałem sobie sprawę, że mogę po prostu użyć robocopy. Miałem też inne wymagania. Zasadniczo konwertowałem witrynę Python (Django) z repozytorium SVN do repozytorium Git i chciałem się upewnić, że nie wprowadzę niezatwierdzonych zmian w SVN. Chciałem jednak warunkowo wykluczyć .svn
katalogi i .pyc
skompilowane pliki Pythona. Następujące polecenie robocopy robi dokładnie to, co chcę:
robocopy source destination /XO /E /XD .svn /XF *.pyc
Czy jest jakiś odpowiednik Robocopy w Linuksie? Zajrzałem do niego rsync
krótko, ale wydawało mi się, że musiałbym skonfigurować serwer rsync przed próbą synchronizacji folderów.
Odpowiedzi:
Wygląda na to, że rsync jest zdecydowanie tym, czego szukasz. Nie trzeba konfigurować „serwera rsync”, aby kopiować pliki z jednego komputera na drugi. Rsync obsługuje kopiowanie plików przez SFTP (SSH File Transfer), które większość Linuksów już włączyło (jeśli nie zostało ręcznie wyłączone).
Zobacz pliki Mirror Lifehackera pomiędzy systemami za pomocą rsync, aby uzyskać więcej informacji:
źródło
scp
podobnej składni do przesyłania przez ssh? Próbowałem przesłać pliki na jednym komputerze, ale warto o tym wiedzieć.rsync skopiuje pliki z jednego katalogu do innego katalogu na tym samym komputerze, na przykład robocopy. Oto polecenie rsync równoważne z poleceniem robocopy:
Spowoduje to rekurencyjne skopiowanie źródła do miejsca docelowego i wykluczenie starszych plików oraz katalogów / plików „.svn” i „* .pyc”.
źródło