Как сравнить файлы в разных папках в Unix?


2

Ниже приводится структура каталогов

 Folder1
   subFolder1
     File1.txt
     File2.txt
   subFolder2
     File3.txt
   subFolder3

 Folder2 
   subFolder1
     File1.txt
     File2.txt
   subFolder2
     File3.txt
     File4.txt
   subFolder3
     File5.txt

Я хочу сравнить содержимое каждого файла в папке Folder1 с соответствующим файлом в папке Folder2.

т.е. я хочу проверить содержимое Folder1 / subFolder1 / File1.txt с содержимым Folder2 / subFolder1 / File1.txt

Я использовал команду unix

     diff -b  Folder1/subFolder1/File1.txt   Folder2/subFolder1/File1.txt

Это работает! Но я хотел бы сделать это рекурсивно для каждого файла в подпапках.

Пожалуйста, предоставьте несколько указателей на это ...

unix  sh 

1
Ты пробовал --recursive?
Магнат

Ответы:


2

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

Чтобы сделать вложенные каталоги, вам нужно передать -rопцию, чтобы сделать рекурсивный поиск.

Просто запустите следующую команду, и вы получите желаемый результат:

diff -br /path/to/Folder1 /path/to/Folder2

1
И -bкак вопрос?
Джонатан Леффлер

@JonathanLeffler Хороший улов! Исправлен ответ. :)
Jaypal Singh
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.