Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 5

Поиск одинаковых по их содержанию файлов в двух каталогах

18.03.2017, 16:51. Показов 6496. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят помогите реализовать. Я новичок в линуксе, а задачу надо сдать уже в понедельник. Буду очень благодарен.

Написать командный файл, осуществляющий поиск одинаковых по их содержанию файлов в двух каталогах, например, Dir1 и Dir2. Пользователь задает имена Dir1 и Dir2 в качестве первого и второго аргумента командной строки. В результате работы файлы, имеющиеся в Dir1, сравниваются с файлами в Dir2 по их содержанию. На экран выводятся количество просмотренных файлов и результаты сравнения. Реализовать пункт меню, который позволит пользователю удалять файлы с одинаковым содержанием.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2017, 16:51
Ответы с готовыми решениями:

Найти и вывести имена одинаковых файлов в двух каталогах
Здравствуйте! Помогите пожалуйста решить такую задачу: Никак не могу сообразить. Вот, что удалось найти на просторах интернета...

Написать скрипт поиска одинаковых по их содержимому файлов в двух каталогах
Пользователь задаѐт имена Dir1 и Dir2 в качестве первого и второго аргумента командной строки. В результате работы файлы, имеющиеся в...

Поиск новейших версий файлов из одноимённых файлов, находящихся в двух каталогах, и перенос найденных в третий
Здравствуйте. Возникла необходимость в создании кода на batch, который делает следующее. Сначала код проверяет главную папку, содержащую...

9
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
18.03.2017, 17:37
Файлы текстовые/бинарные? Что значит «одинаковое содержание»? Обычно рассчитывают хэш-суммы и их сравнивают… Я бы рассчитал суммы для файлов из обоих директорий, отсортировал их по хэш и оставил только дубликаты.
Цитата Сообщение от OsTAAA Посмотреть сообщение
результаты сравнения
не понятно. В каком виде?

Добавлено через 11 минут
Bash
1
sha1sum Dir1/* Dir2/* 2>/dev/null | sort -k1 | uniq -w 40 --all-repeated=separate | cut -d\  -f3-
0
Модератор
Эксперт NIX
 Аватар для NeoMatrix
8532 / 3375 / 105
Регистрация: 24.05.2011
Сообщений: 14,605
Записей в блоге: 8
18.03.2017, 22:51
Bash
1
find -name -size
Цитата Сообщение от OsTAAA Посмотреть сообщение
а задачу надо сдать уже в понедельник
У вас есть больше суток на чтение man find
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
18.03.2017, 22:57
Bash
1
man diff
утилита diff в большинстве дистрибутивов по умолчанию НЕ УСТАНАВЛИВАЕТСЯ, поэтому, возможно ее придется доустановить...
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
19.03.2017, 12:08
Dmitry, Гложут смутные сомнения насчет diff: она сравнивает директории с файлами по названиям и проверяет сходство у файлов с одинаковыми именами. Хотя может Вы знаете какой хитрый ключик?
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
19.03.2017, 12:49
Цитата Сообщение от Marinero Посмотреть сообщение
она сравнивает директории с файлами по названиям и проверяет сходство у файлов с одинаковыми именами. Хотя может Вы знаете какой хитрый ключик?
sorry, but...
я не понял ваш вопрос. diff сравнит содержимое двух директорий, при необходимости (-r) рекурсивно. фактически, чаще всего утилита используется для создания файлов различий, которые потом могут быть использованы как "указание к действию"для утилиты patch....
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
19.03.2017, 13:17
Dmitry, При сравнении содержимого директорий file1 и file2 для diff — стандартно разные файлы, даже если их содержимое одинаковое, она даже не будет их сравнивать: напишет что тут файл есть, а там — нет. Если есть опция изменяющее такое поведение для того чтоб сравнивать содержимое всех файлов одной директории со всеми файлами в другой директории, то мне она не попадалась.
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
19.03.2017, 13:27
Цитата Сообщение от Marinero Посмотреть сообщение
чтоб сравнивать содержимое всех файлов одной директории со всеми файлами в другой директории
вот именно ЭТО Я И НЕ ПОНИМАЮ! в одной папке (например) прям сразу "насыпаны" jpg-картинки, в другой - в нескольких подпапках накиданы вордовские документы. ЧТО ИМЕННО ВЫ СОБРАЛИСЬ ТУТ СРАВНИВАТЬ? diff как раз и напишет, что в одной папке есть "вот такие файлы, которых нет во второй", и соответственно, обратное про содержимое второй. лично я смысла сравнивать ПО СОДЕРЖИМОМУ вордовские доки с jpg-картинками СМЫСЛА НЕ ВИЖУ аж ни разу...
0
Модератор
Эксперт NIX
 Аватар для NeoMatrix
8532 / 3375 / 105
Регистрация: 24.05.2011
Сообщений: 14,605
Записей в блоге: 8
19.03.2017, 14:09
Marinero, Dmitry, то есть, если я, допустим, нагенерю рандомных архивов rar, скидаю их в ./dir1 с подпапками (сделаю дерево каталогов), потом сделаю копию dir1 с именем dir2
и после этого в dir2 внесу изменения (удалю часть архивов, часть из архивов добавлю новых, а ещё часть изменю положение в дереве каталогов:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
neo@matrix-Satellite:~/Test$ ls
dir1  dir2
neo@matrix-Satellite:~/Test$ find . -name "arch*"
./dir1/dir2/arch1.rar
./dir1/dir2/dir/arch3.rar
./dir1/dir/arch2.rar
 
./dir2/arch4.rar
./dir2/dir2/arch1.rar
./dir2/dir2/dir/arch6.rar
./dir2/dir2/arch3.rar
./dir2/dir/arch2.rar
./dir2/dir/arch5.rar
то diff мне должна будет выдать все эти различия между dir1 и dir2 и сказать, что в dir2 лежит больше файлов, что между ./dir1/dir/arch2.rar и ./dir2/dir/arch2.rar есть различия в объёме и времени последнего доступа, что arch3.rar и arch6.rar отличаются путями в дереве и т.д.
Я правильно понимаю?
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
19.03.2017, 15:13
дифф напишет, какие файлы "взаимно отсутствуют", а про бинарники (в число которых попадают например архивы, картинки, фильмы и т.п.) с одинаковым именем и расположением напишет, что бинарные файлы аааа и бббб различаются. различие в виде именнно текста будет показано лишь для файлов имеющих "текстовую" структуру (исходники, скрипты, текстовые файлы и т.п.)...
проще показать
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
diff -r /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/application/config/easyhotspot.php /usr/src/easyhotspot_ci3/easyhotspot/application/config/easyhotspot.php
23c23
< $config['demo'] = FALSE;
---
> $config['demo'] = TRUE;
diff -r /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/application/controllers/admin/Postplan.php /usr/src/easyhotspot_ci3/easyhotspot/application/controllers/admin/Postplan.php
970c970,971
<           $answer['new']='TRUE';
---
>           $answer['new']='true';
 
diff -r /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/application/language/english/messages_lang.php /usr/src/easyhotspot_ci3/easyhotspot/application/language/english/messages_lang.php
833c833
< $lang['USER_DELETE_BILLINGPLAN']='User  removed tariff %s';
---
> $lang['USER_DELETE_BILLINGPLAN']='User removed tariff %s';
836a837
> $lang['USER_DELETED_MACBAN']='User removed from ban-list mac-address %s';
diff -r /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/application/language/ukrainian/messages_lang.php /usr/src/easyhotspot_ci3/easyhotspot/application/language/ukrainian/messages_lang.php
854a855
> $lang['USER_DELETED_MACBAN']='Користувач видалив з переліку забанених mac-адресу %s';
 
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: 15255.jpg
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: cat3.jpg
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: Chet_Faker_-_No_Diggity.mp4
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: Facebook_video_986994354718965-986994354718965.mp4
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: Hotspor_var1.png
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: YDXJ0211.mp4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2017, 15:13
Помогаю со студенческими работами здесь

Сравнение двух файлов по содержанию
Добрый день. Пытаюсь сравнить по содержанию два файла. Вот такой код #include &lt;stdio.h&gt; #include &lt;limits.h&gt; #include...

Поиск одинаковых имён файлов в двух папках
Доброго времени суток, суть такова: Нужно реализовать bat файл, который при запуске будет искать одинаковые имена в двух разных папках и...

Поиск по содержанию присоединенных файлов
Нужен поиск по содержанию приаттаченных файлов (doc и txt). Как это организовать?

Поиск файлов Word по содержанию определенной строки
Необходимо произвести поиск файлов WORD по содержанию определенной строки. Установлен word 2007 так что Word.Application.FileSearch не...

Segmentation fault(core dumped) в программе поиска одинаковых файлов в 2-х каталогах и их подкаталогах
Здравствуйте, сейчас делал задание, суть которого в том, чтобы в двух каталогах и их подкаталогах найти элементы с одинаковым содержанием и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru