Я ищу краткий способ проверить, был ли скопирован файл с помощью 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