MAC: Как объединить папку, чтобы мы перезаписывали ее только тогда, когда исходные файлы новее, чем файлы назначения?

Кажется, это очень простая команда. Однако даже после часа поиска решения я все еще не могу найти что-то, что работает.

Итак, у меня есть две большие папки (со многими файлами и множеством подпапок, мега-бэкап). Я хотел бы объединить эти две папки в одну папку, содержащую только новые файлы. Поэтому я ищу способ перезаписать файлы, ЕСЛИ ТОЛЬКО исходный файл новее, чем целевой файл, или когда целевой файл не существует.

Я использую Mac версии 10.7.4. Я открыт для установки нового приложения и/или использования команды терминала/bash.


person Fleea    schedule 13.01.2013    source источник
comment
OS X 10.8 Mountain Lion делает это автоматически через графический интерфейс.   -  person Mahmoud Al-Qudsi    schedule 14.01.2013


Ответы (1)


В системах Gnu используйте mv -u SOURCE DEST или cp -u SOURCE DEST для перемещения или копирования только в том случае, если файл SOURCE новее, чем файл DEST, или когда файл назначения отсутствует.

Обратите внимание, что в OS X mv и cp не поддерживает параметр -u. Однако rsync вариант -u, и он поддерживается в OS X. Например:

rsync -aru SOURCE/ DEST

Запустите несколько тестов в пустых каталогах, прежде чем применять его к большим и важным каталогам, потому что (IMO) rsync идиосинкразичен в отношении того, заканчиваются ли имена каталогов на / или без него. Часть справочной страницы Linux гласит:

Косая черта в конце источника изменяет это поведение, чтобы избежать создания дополнительного уровня каталога в месте назначения. Вы можете думать о конце / в источнике как о значении «копировать содержимое этого каталога», а не «копировать каталог по имени», …

person James Waldby - jwpat7    schedule 13.01.2013
comment
Если я правильно читаю документы, -r неявно является частью опции -a (архив). Итак, -au - это то же самое, что и -aru. Вы можете полностью сэкономить на вводе письма! знак равно - person Winter Dragoness; 06.08.2014
comment
@ChrisDragon, похоже, вы правы ... Я должен был заметить, что r является избыточным в -aru - person James Waldby - jwpat7; 06.08.2014