Я наконец нашел способ получить измененные файлы и скопировать их в другой каталог:
cvs -qn update -d 2>/dev/null | grep '^[M|\?|P] ' | awk '{print $2}' > files.list
while read file; do cp -r -f --parents "$file" /tmp/dest/; done < files.list
В основном, cvs -qn update -d выполняет фиктивное обновление (не изменяет файлы), направляется в grep, чтобы вывести только измененные файлы, используйте awk, чтобы исключить M, P,? и т.д., вывод в файл.
Зацикливание строк в новом файле с помощью cp --parents для сохранения структуры каталогов