Я намагаюся знайти спосіб перевірити всередині даного каталогу дублікати файлів (навіть з різними іменами) і замінити їх символьними посиланнями, що вказують на перше виникнення. Я намагався, fdupesале він просто перераховує ці копії.
Ось такий контекст: я налаштовую тему значків на свій смак, і я виявив, що багато іконок, навіть якщо вони мають різні назви та різні місця у своїй батьківській папці, і використовуються для різних цілей, в основному - це саме те саме картина. Оскільки застосування однієї і тієї ж модифікації в двадцять-тридцять разів є зайвим, коли потрібна лише одна, я хочу зберегти лише одне зображення і символізувати всі інші.
Наприклад, якщо я запускаю fdupes -r ./всередині каталогу testdir, він може повернути мені такі результати:
./file1.png
./file2.png
./subdir1/anotherfile.png
./subdir1/subdir2/yetanotherfile.png
З огляду на цей вихід, я хотів би зберегти лише файл file1.png, видалити всі інші та замінити їх на посилання, що вказують на нього, зберігаючи всі оригінальні назви файлів. Так file2.pngзбереже свою назву, але стане посиланням на, file1.pngа не копією.
Ці посилання не повинні вказувати на абсолютний шлях, але повинні бути відносно батьківського testdirкаталогу; тобто yetanotherfile.pngбуде вказувати ../../file1.png, не робити/home/testuser/.icons/testdir/file1.png
Мене цікавлять і рішення, які передбачають графічний інтерфейс та CLI. Це не обов'язкове використання fdupesЯ цитував це, тому що це інструмент, який я знаю, але я відкритий для рішень, які використовують і інші інструменти.
Я майже впевнений, що bash-скрипт для обробки всього цього не повинен бути таким складним для створення, але я недостатньо досвідчений, щоб з’ясувати, як його написати самостійно.
v1.51(Ubuntu 14.04.2 LTS).