Как Waylon Flinn сказал, Вам, возможно, понадобится двоичный алгоритм дельты. rsync алгоритм является хорошим. Это быстро и надежно. См. также документация утилиты .
Бит « dev / null» находится на уровне оболочки и не относится к gcc
< defines input file
> defines ouput file for std out,
>> defines a output for std out that will be appended to,
| sends std out output to another process on it's std in
Я забыл синтаксис, но вы также можете указать std err, как и & 2>
Имя после скобок - это имя файла, где / dev / null - пустой файл
man sh должен предоставить вам необходимую помощь по этим вопросам.
У вас нет доступа к gcc по адресу момент, если предположить из другого комментария, что - читает из std in, тогда и эквивалентный оператор
gcc -E -dM /dev/null
Это дает список всех предопределенных макросов в gcc. -E означает запуск препроцессора. -dM означает выгрузку предопределенных макросов из препроцессора. Знак - предназначен для чтения со стандартного ввода, а / dev / null просто передает пустой исходный файл.