Как определить, действительно ли cp -u скопировал файл?

Как говорится в названии, я ищу краткий способ проверить, был ли файл скопирован с использованием cp -u .

У меня есть небольшой скрипт оболочки, который обновляет довольно много файлов. В настоящий момент сценарий echo -сообщения содержит небольшое сообщение для каждого файла, который копируется.

Теперь я хочу изменить сценарий таким образом, чтобы echo только тогда, когда файл фактически обновлялся. Я проверил, если cp -u вернул код ошибки, если он не скопировал файл, но это не так.

Есть ли лучший способ, чем вручную сравнивать временные метки файлов?

One Solution collect form web for “Как определить, действительно ли cp -u скопировал файл?”

 if [ "$(cp -uv source destination)" != "" ]; then echo copied; else echo not copied; fi 

Обновить

Match "->" в подробном выводе cp. Это происходит только в том случае, если оно может быть успешно скопировано и если ваши имена файлов не содержат «->».

 if [[ "$(cp -uv source destination)" =~ \-\> ]]; then echo copied; else echo not copied; fi 
  • Загрузите только недавно измененные файлы с помощью wget over FTP
  • Как найти последние n новых файлов для каждой из нескольких каталогов
  • Найти файлы между двумя папками в linux?
  • Проверить, был ли файл изменен после даты в имени файла
  • Заменить символ алфавитом в зависимости от позиции в строке
  • Полная дата файла (без утилит GNU)
  • Удалить файлы старше X дней +
  • Получить дату изменения, которую можно использовать с touch -m
  • Как я могу хранить mtime файлов и каталогов, когда я использую rsync или cp? Для использования в резервном / инкрементальном резервном копировании
  • Нужно преобразовать столбец timestamp unix epoch в каждую строку с помощью sed или awk
  • Добавление метки времени в файл журнала с помощью команды cronjob
  • Сохранять измененную метку времени после редактирования
  • Linux и Unix - лучшая ОС в мире.