Как эмулировать поведение "cp --update" в Mac OS X?

версия GNU/Linux cp имеет приятный --update флаг:

-u, --updateкопировать только тогда, когда файл SOURCE является более новым, чем файл назначения или когда отсутствует файл назначения

версия Mac OS X cp не имеет этого флага.

Каков наилучший способ получить поведение cp --update с помощью встроенных системных команд командной строки? Я хочу избежать установки каких-либо дополнительных инструментов (включая версию GNU cp).

Ответ 1

rsync имеет параметр -u/--update, который работает так же, как GNU cp:

$ rsync -u src dest

Ответ 2

Также смотрите rsync другие параметры, которые, вероятно, вы действительно хотите:

    -l, --links                 copy symlinks as symlinks
    -H, --hard-links            preserve hard links
    -p, --perms                 preserve permissions
        --executability         preserve executability
    -o, --owner                 preserve owner (super-user only)
    -g, --group                 preserve group
        --devices               preserve device files (super-user only)
        --specials              preserve special files
    -D                          same as --devices --specials
    -t, --times                 preserve times

    -a, --archive
          This is equivalent to -rlptgoD. It is a quick way of saying you want recursion 
          and want to preserve almost everything (with -H being a  notable  omission).   The
          only exception to the above equivalence is when --files-from is specified, in which 
          case -r  is not implied.

          Note that -a does not preserve hardlinks, because finding multiply-linked files is
          expensive.  You must separately specify -H.