Я пишу сценарий bash, который копирует изображения из каталога (и всех его подкаталогов) в другой каталог.Сравнение имен файлов и md5sums из нескольких файлов в Linux
До сих пор у меня есть это:
find . -type f -regextype posix-extended -regex '^.*IMG_[0-9]{4}\.jpg' -exec cp {} ~/$output \;
Это работает, но проблема является более сложной, чем это. Существует два случая:
- Некоторые изображения имеют одно и то же имя, но разные. В этом случае они должны быть переименованы просто путем добавления второго «.JPG» к концу их имени.
- Однако, если два файла имеют одинаковое имя и являются одинаковыми файлами, только один должен быть скопирован в выходной каталог, а путь абсолютного другого должен быть записан в текстовый файл - duplicates.txt.
Я думаю, что мне нужно использовать cmp для имен файлов, а затем md5sum для проверки идентичных файлов, но я не уверен, как использовать cmp для имени файла, или если это возможно.
Заранее благодарим за любую помощь!
Команда 'fdupes' может делать то, что вы хотите. –
'cmp' сообщает вам, являются ли файлы одинаковыми, он сравнивает байты по байтам. –