polecenie cp, zignoruj ​​niezmienione pliki

10

Czy istnieje sposób na wykonanie, cpale ignorowanie plików, które mogą już istnieć w miejscu docelowym, które nie są starsze niż pliki u źródła.

Zasadniczo chcę skopiować zawartość jednego dysku na inny, a następnie ponownie uruchomić kopię, ale tylko aktualizować nowe pliki lub pliki, które zostały zaktualizowane po stronie źródłowej.

Dzięki

Ben Everard
źródło

Odpowiedzi:

17

Użyj tego:

rsync -a /source /destination

Alternatywnie możesz uzyskać więcej szczegółów za pomocą kilku innych flag, takich jak -vlub --progress.

Utah Jarhead
źródło
1
Chcę dodać, że możesz używać również rsyncprzez sieć. Jest to szczególnie łatwe przy użyciu ssh. W przypadku źródłowego lub docelowego miejsca docelowego dodaj go user@host:i zrobi to samo. Będzie to zastępowaćscp
UtahJarhead
9

ze strony cpman:

   -u, --update
          copy only when the SOURCE file is newer than the destination file or when  the
          destination file is missing
gulasz
źródło
Właśnie to znalazłem, szukałem niewłaściwej wersji strony man cp. Nie!
Ben Everard
6

Użyj rsync, problem rozwiązany.

rsync -av /srcdir /tgtdir
Sven
źródło