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

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

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

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

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

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

решение1

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

Обновлять

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

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

Связанный контент