Существует ограничение на количество переносимого кода, которое вы можете написать, не имея условий для выполнения разных вещей в разных системах. Не расстраивайтесь, используя dircmp
, если он доступен, или GNU diff , если он доступен.
if type dircmp >/dev/null 2>/dev/null; then
dircmp dir1 dir2
else
diff -r dir1 dir2
fi
Если вы хотите знать, какие файлы были изменены, и не заботитесь о перечислении содержимого, вы можете отфильтровать вывод diff
, чтобы сохранить только строки заголовков. (Предупреждение: если у вас есть имена файлов с символами новой строки, вывод может быть неразборчивым.)
diff -r dir1 dir2 | grep -v '^[<>0-9]'
Сделайте так grep -v '[^ ]'
, чтобы сохранить информацию о диапазоне измененных строк, но по-прежнему отфильтровывать содержимое измененных строк.