При использовании этой следующей команды следует проверить, идентичны ли они.
diff imageA imageB -r 2> /dev/null | grep -v "is a character special file" | grep -v "is a block special file" && echo "viola"
/ 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/
также производит кучу беспорядка, типа «пропуска нестандартного файла».
Как я могу сравнить два дерева и просто убедиться, что все реальные файлы существуют в обоих и идентичны?
При использовании этой следующей команды следует проверить, идентичны ли они.
diff imageA imageB -r 2> /dev/null | grep -v "is a character special file" | grep -v "is a block special file" && echo "viola"
Посмотрите на Guiffy. Это не бесплатно, но есть 21-дневная бесплатная пробная версия, которая не ограничивает функциональность:
Полный (массивный) список возможностей
Он утверждает, что выполняет следующее, и, кажется, очень близок к тому, что вы ищете, или может подойти достаточно близко, чтобы вы могли взять его оттуда:
Используйте rsync в режиме записи (с -v
/ --verbose
и без -n
/ --dry-run
) и запускайте его несколько раз, пока вывод не стабилизируется. Запустите его как root, чтобы воссоздать нестандартные файлы (подразумеваемые -D и -a), что должно избавить от беспорядка.