2

Я только начинаю осваивать терминал Linux, но все равно делаю ошибки:

Недавно мне по ошибке удалось скопировать все файлы, содержащиеся в каталоге (включая все подкаталоги) в другой каталог.

Есть ли простой способ идентифицировать все файлы, содержащиеся в исходной папке (включая подкаталоги) и удалить каждый файл из другого каталога? Например: Папка / источник содержит файлы file1 и file2, а подкаталог / source / sub содержит файлы file3 и file4.

Папка / назначение содержит файлы file1, file2, file3, file4, file5 и file6.

Как я могу разобрать /source и его подкаталоги для файлов и удалить только эти файлы из /destination, чтобы /destination осталось только с file5 и file6?

Большое спасибо.

1 ответ1

1

Вы можете просмотреть каждый файл вручную, читая из списка (может быть, вывод из ls -lR source или find source -type f) и удаляя дубликат из папки назначения ...

Или используйте find и md5sum для проверки действительно идентичных файлов (не только файлов с одинаковыми именами), сравнивая отсортированный вывод md5sum для каждой папки, находя дублирующиеся строки и удаляя дублирующиеся файлы из одной папки.

Или (возможно, лучше) вы могли бы использовать программу для поиска дубликатов файлов, такую как fdupes или fslint, они оба могут находить дубликаты файлов, даже один имеет приятный графический интерфейс. Просто убедитесь, что они указаны только в желаемых папках "source" и "destination".

Посмотрите эти другие вопросы для некоторых опций (изменив "переместить в другое место" на "удалить"):

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