Mój problem polega na tym, że z jakiegoś powodu mam duplikaty niektórych utworów muzycznych. Jednak nie są one nazywane identycznie. Na przykład:
Muzyka / Prefuse 73 / One Word Gasting / 07. Detchibe.mp3
I
Muzyka / Prefuse 73 / One Word Extinguisher / 07 - Detchibe.mp3
Zauważ, że są to zduplikowane utwory, ale 07 * . * i 07 - oszukuje zduplikowane wyszukiwarki plików, które wyszukują na podstawie nazw plików.
11.10
banshee
music
duplicate-files
John McKean Pruitt
źródło
źródło
Odpowiedzi:
Możesz użyć
fdupes
podobnej odpowiedzi na pytanie »Jak znaleźć i usunąć duplikaty plików« sugerowane. Podam przykład:Najpierw utworzyłem katalog jak w twoim przykładzie. Zrobiłem plik z losowych danych i skopiowałem jego zawartość do innych plików. Po uruchomieniu
fdupes -rd
oprogramowanie wyszukuje dwa dokładne pliki i pyta, które z nich usunąć.Jeśli masz dużo plików, możesz skorzystać z tej opcji
-1
.fdupes
wydrukuje wszystkie duplikaty w jednym wierszu. Możesz je przetwarzać za pomocąxargs
i innych funkcji powłoki.źródło
fdupes
że nie wydaje się, aby nurkować w podfolderach. Na przykład~/Desktop/Dupes2/
zawiera folder zatytułowany Blood Sugar Sex Magik with the Dupes, ale prostefdupes -r
polecenie nie zwraca żadnej listy.Znalazłem dość prosty łańcuch poleceń. Ogromne podziękowania dla @Oli.
Kiedyś
fdupes
rekurencyjnie (-r
) znajdowało duplikaty, pomijając pierwszą (-f
). Bash czyta ten wiersz po wierszu przezread
ręce i każdą linię,mv
aby przenieść wszystkie duplikaty do innego katalogu. Zwróć uwagę na użycie cudzysłowów wwhile
pętli do obsługi spacji i innych podejrzanych interpunkcji,fdupes
które nie będą obsługiwane (nawet z-1
/--sameline
).źródło
W odpowiedziach na Ręcznie ustawione liczenie słuchania utworów w Banshee? , opisuje, jak uzyskać dostęp do bazy danych używanej przez banshee do zapisywania wszystkich informacji o ścieżce.
Po nawiązaniu połączenia z bazą danych, w tabeli zapytań wykonaj, wklej
w polu ciągu SQL, a następnie kliknij „wykonaj zapytanie”. Spowoduje to wyświetlenie wszystkich ścieżek o tym samym tytule, ignorując spacje, myślniki i kropki. Jeśli są inne znaki, które chcesz zignorować, dodaj je do zapytania według tego samego wzoru. (IE dodaj
replace(
przed pierwszym istniejącym „zamień” i po ostatnim „)” w tym wierszu, dodaj, '[character you want removed]', '')
.(Nie wiem, ile wiesz o sql - jeśli potrzebujesz więcej szczegółów, dodaj komentarz).
To da ci listę tytułów. Będziesz musiał sam usunąć.
Może to być lepszy sposób, ale jeśli tak, nie wiem o tym.
Gdy będziesz mieć dużą listę plików do usunięcia (z mojej metody lub z
fdupes
innych, o których wspominali inni), umieść listę plików, które chcesz usunąć, w katalogu tekstowym. Upewnij się, że spełniony jest jeden z poniższych warunków:Opcja nr 1: nazwy plików zawierają pełną ścieżkę. Na przykład plik może zawierać:
Opcja nr 2: nazwy plików zawierają ścieżkę względną, a plik z listą nazw plików jest zapisywany w folderze nadrzędnym. Na przykład, jeśli lista plików została zapisana
/home/doneill/music/
, zawierałaby:W obu przypadkach otwórz okno terminala i przejdź do folderu zawierającego plik,
cd /home/doneill/music/
na przykład z listą .Wpisz:
(Zastąpienie pliku filelist.txt nazwą pliku z listą). To powinno wypluć listę wszystkich plików, które chcesz usunąć. Poświęć chwilę, aby dokładnie sprawdzić listę. Jeśli to prawda, wpisz:
To w zasadzie mówi komputerowi: dla każdego wiersza w pliku
filelist.txt
usuń plik z wymienioną nazwą.źródło
sqlitebrowser
jeśli nie zostanie wprowadzone do menu podczas instalacji). 2) Plik -> Otwórz. 3) Wpisz/home/[user]/.config/banshee-1/
w pasek adresu „Szukaj w” (zamień [użytkownik] na swoją nazwę użytkownika). 4) Kliknij dwukrotniebanshee.db
.