Моя проблема в том, что у меня почему-то есть дубликаты некоторых музыкальных треков. Однако они не названы одинаково. Например:
Музыка / Prefuse 73 / Огнетушитель одним словом / 07. Detchibe.mp3
&
Музыка / Prefuse 73 / Огнетушитель одним словом / 07 - Detchibe.mp3
Обратите внимание, что это дубликаты песен, но 07 * . * & 07 - обманывает дубликаты поиска файлов, которые ищут по именам файлов.
11.10
banshee
music
duplicate-files
Джон Маккин Пруитт
источник
источник
Ответы:
Вы можете использовать
fdupes
как ответ на вопрос »Как найти и удалить дубликаты файлов« предложил. Позвольте мне привести пример:Сначала я создал каталог, как в вашем примере. Я сделал файл из случайных данных и скопировал его содержимое в другие файлы. При запуске
fdupes -rd
программа находит два точных файла и спрашивает, какой из них удалить.Если у вас много файлов, вы можете использовать опцию
-1
.fdupes
напечатает все дубликаты в одну строку. Вы можете обрабатывать их сxargs
другими функциями оболочки.источник
fdupes
, похоже, не погружаться в подпапки. Например, в нем~/Desktop/Dupes2/
есть папка под названием «Blood Sugar Sex Magik с Dupes», но простаяfdupes -r
команда не возвращает никакого списка.Я нашел несколько простых цепочек команд. Большое спасибо @Oli.
Это использовалось
fdupes
для рекурсивного (-r
) поиска дупесов, опуская first (-f
). Bash читает эту строку построчно черезread
amd каждую строку,mv
чтобы переместить все дубликаты в другой каталог. Обратите внимание на использование кавычек вwhile
цикле для обработки пробелов и других хитрых знаков препинания,fdupes
которые не будут обрабатываться (даже с-1
/--sameline
).источник
В ответах на Вручную установить количество прослушиваний треков в Banshee? он описывает, как получить доступ к базе данных, которую использует банши для сохранения всей информации о треке.
Когда вы подключитесь к базе данных, в таблицу запросов на выполнение вставьте
в строку строки SQL, затем нажмите «выполнить запрос». Это покажет вам все треки с тем же названием, игнорируя пробелы, тире и точки. Если есть другие символы, которые вы хотите игнорировать, добавьте их в запрос в том же порядке. (IE добавить
replace(
до первой существующей «заменить» и после последней «)» в этой строке, добавить, '[character you want removed]', '')
.(Я не знаю, сколько вы знаете о SQL - если вам нужно больше деталей, оставьте комментарий.)
Это даст вам список названий. Вы должны будете на самом деле сделать удаление самостоятельно.
Возможно, есть лучший способ сделать это, но если есть, я не знаю об этом.
Когда у вас есть большой список файлов, которые нужно удалить (из моего метода или из
fdupes
тех, что упоминали другие), поместите список файлов, которые вы хотите удалить, в текстовый каталог. Убедитесь, что верно одно из следующего:Вариант № 1: имена файлов содержат полный путь. Например, файл может содержать:
Вариант № 2: имена файлов содержат относительный путь, а файл со списком имен файлов сохраняется в родительской папке. Например, если ваш список файлов был сохранен
/home/doneill/music/
, он будет содержать:В любом случае откройте окно терминала и перейдите, например, в папку, содержащую файл со списком
cd /home/doneill/music/
.Печатать:
(Замена filelist.txt на имя файла со списком). Это должно выложить список всех файлов, которые вы хотите удалить. Найдите минутку, чтобы дважды проверить список. Если это правильно, введите:
Это в основном говорит вашему компьютеру: для каждой строки в файле
filelist.txt
удалите файл с именем в списке.источник
sqlitebrowser
если он не был добавлен в ваше меню при установке). 2) Файл -> Открыть. 3) Введите/home/[user]/.config/banshee-1/
в адресную строку «Look in» (замените [user] на ваше имя пользователя). 4) Дважды щелкните поbanshee.db
.