[EDIT] После публикации я заметил, что @freedo уже упоминал comm
до меня. [/ РЕДАКТИРОВАТЬ]
Первое сохранение списков деревьев каталогов в файлы:
# Using parenthesis ensures the command are executed inside a subshell, so
# changing directory (`cd`) back afterwards is not needed.
(cd dir1 ; find -type d | sort >/tmp/list1)
(cd dir2 ; find -type d | sort >/tmp/list2)
Тогда эта команда покажет, что присутствует в dir1
, но не в dir2
:
comm -23 /tmp/list1 /tmp/list2
Хотя эта команда покажет, что находится в dir2
, но не вdir1
:
comm -13 /tmp/list1 /tmp/list2
И это покажет, что присутствует в обоих:
comm -12 /tmp/list1 /tmp/list2
Наконец, это покажет всю информацию выше сразу, в 3 столбцах:
comm /tmp/list1 /tmp/list2
Утилита comm
кажется малоизвестной. Но он, вероятно, установлен по умолчанию в большинстве, если не во всех системах Linux. В Debian он находится в пакете «coreutils», который помечен как «необходимый».
Малоизвестная команда, но comm
однажды оказалась очень полезной для меня, когда я решал неприятные проблемы в большой файловой системе (> 25 Tb ). Я считаю своим долгом перед comm
защищать его использование.
Поскольку вы указали, что то, что я упомянул в моем комментарии, сработало после того, как вы попробовали это, я опубликую это как ответ:
zypper install git
git
доступен в репозиториях SLES, как и в репозиториях почти любого другого дистрибутива. В случае SLES приведенная выше команда установит его, если репозитории включены.