2

Возможный дубликат:
Linux: Сравнение структуры каталогов без сравнения файлов

Я различаю два дерева папок, но это занимает много времени, потому что это различие самих файлов. Я просто хочу знать, какие папки / файлы находятся в одном дереве, а не в другом.

Каков наилучший способ сделать это?

1 ответ1

7

Используйте find чтобы получить список файлов в каждом дереве, отсортировать их, а затем использовать diff или comm для сравнения. Малоизвестная команда comm - это специализированный инструмент сравнения файлов, который просто различает строки, появляющиеся только в первом файле, строки, появляющиеся только во втором файле, и строки, появляющиеся в обоих файлах.

(cd /some/dir1 && find . | sort >/tmp/dir1.find)
(cd /where/dir2 && find . | sort >/tmp/dir2.find)
# Show the files that are in dir1 but not in dir2
comm -23 /tmp/dir1.find /tmp/dir2.find
# Show the files that are in dir2 but not in dir1
comm -13 /tmp/dir1.find /tmp/dir2.find

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .