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

Попытка обнаружить команду для копирования файлов, если файл назначения (не исходный) не был изменен в течение последнего часа.

    2 Solutions collect form web for “Копировать файлы из одного каталога в другой, игнорируя файлы, в которых файл назначения был изменен за последний час?”

    Я не знаю ни одной команды, которая бы точно соответствовала вашим требованиям. Примерно так должно работать (удалите --dry-run если вы уверены, что довольны результатом; замените --verbose на --quiet если хотите, чтобы он работал тише):

     src=/path/to/source dst=/path/to/target comm -z -23 \ < (find "$src" -type f -printf '%P\0' | sort -z) \ <(find "$dst" -type f -mmin -60 -printf '%P\0' | sort -z) | rsync --dry-run --verbose --archive --from0 --files-from - "$src" "$dst" 

    Предполагается, что сравнительно недавние утилиты понимают, как обрабатывать строки, оканчивающиеся NUL. При необходимости и при условии, что вы можете гарантировать, что никакие имена файлов не содержат символов новой строки, вы можете удалить три флага -z и rsync --from0 и заменить \0 в командах find на \n .

    Если все ваши копии находятся в существующих файлах, вы можете посмотреть на это с другой стороны: перезаписать локальные файлы, если они старше одного часа. Итак, с каталогом назначения в качестве рабочего каталога:

     find . -mindepth 1 -maxdepth 1 -type f -mmin +60 -exec cp /source/directory/{} . \; 

    где:

    • find . -mindepth 1 -maxdepth 1 -type f -mmin +60 find . -mindepth 1 -maxdepth 1 -type f -mmin +60 находит локальные файлы, которые старше часа
    • -exec cp /source/directory/{} . \; перезаписывает их своим тезкой из /source/directory
    Interesting Posts

    Lvm, показывающий в режиме ожидания

    Как выполнить скрипт bash в нескольких каталогах?

    Что фактически делает компьютер с его запасными циклами процессора?

    debian широкополосный беспроводной выход

    fstab не монтирует диск при загрузке

    Заменить столбцы с помощью оболочки

    Программный RAID с использованием сетевых ресурсов в качестве дисков

    Удерживание левой стрелки запускает постоянный режим

    Использование параметров предварительного посева и загрузки для полностью отсутствующей установки Debian

    Как вы выбираете, какое приложение мониторинга использовать?

    Как отображать команды в другом терминале?

    Как определить, не запущена ли программа с терминала

    Приложения не начинаются с просветления WM

    Невозможность запуска пользовательской службы с помощью systemd

    Возможно множественное переименование Bash в одной строке: возможно?

    Linux и Unix - лучшая ОС в мире.