Убедитесь, что две файловые системы идентичны, игнорируя специальные файлы

2837
endolith

/ media / A и / media / B должны быть идентичны, но я хочу подтвердить их удаление.

Поиск дубликатов файлов не работает, потому что они найдут две копии одного и того же файла в B, например. Я только хочу подтвердить, что каждый файл в одном идентичен другому.

diff -qr /media/A/ /media/B/ кажется, работает, но вывод загроможден мусором, как

diff: / media / A // etc / alternatives / ControlPanel: нет такого файла или каталога

а также

Файл / media / A // dev / tty8 - это специальный символьный файл, а файл / media / B // dev / tty8 - специальный символьный файл.

Я могу подавить первое с помощью 2> /dev/null, но я не знаю о втором.

rsync -avn /media/A/ /media/B/ также производит кучу беспорядка, типа «пропуска нестандартного файла».

Как я могу сравнить два дерева и просто убедиться, что все реальные файлы существуют в обоих и идентичны?

1
Вы не упоминаете операционную систему. Я предполагаю, что это какой-то вариант Linux / Unix, поэтому ваше сообщение может получить больше ответов, если оно будет помечено как таковое. Однако, если бы я делал это в Windows, я бы использовал один из моих любимых инструментов Beyond Compare (с http://www.scootersoftware.com/), который также имеет версию для Linux. Это не бесплатно, но есть 30-дневная пробная версия. Единственный другой способ, который я знаю, - это передать вывод diff в файл, а затем попытаться удалить ненужные строки, пока он не достигнет приемлемого размера. Вы можете использовать sed, чтобы сделать это, или это awk? (Прошло много лет с тех пор, как я использую либо) sgmoore 12 лет назад 1

3 ответа на вопрос

2
Captain Planet

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

diff imageA imageB -r 2> /dev/null | grep -v "is a character special file" | grep -v "is a block special file" && echo "viola" 
0
bwall

Посмотрите на Guiffy. Это не бесплатно, но есть 21-дневная бесплатная пробная версия, которая не ограничивает функциональность:

Домашняя страница Guiffy

Полный (массивный) список возможностей

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

  • Folder Compare работает с Unicode именами файлов / папок
  • Folder Compare работает с архивными файлами (.zip, .tar, .jar и др.).
  • Сохранить сравнительные отчеты - инструмент сравнения папок Guiffy создает отчеты в формате HTML
  • Быстро запускает сравнение файлов из папки сравнения.
  • Удобная для пользователя папка сравнивает представление с интерфейсом, похожим на Explorer, и расширяемыми подпапками.
  • Интерфейс сравнения папок включает всплывающие меню для операций синхронизации файлов.
  • Опция рекурсивного сравнения - сравнение папок может выполнять сравнение файлового дерева.

0
Tobu

Используйте rsync в режиме записи (с -v/ --verboseи без -n/ --dry-run) и запускайте его несколько раз, пока вывод не стабилизируется. Запустите его как root, чтобы воссоздать нестандартные файлы (подразумеваемые -D и -a), что должно избавить от беспорядка.

Похожие вопросы