Mi problema es que por alguna razón tengo duplicados de algunas pistas de música. Sin embargo, no tienen nombres idénticos. Por ejemplo:
Música / Prefuse 73 / Extintor de una palabra / 07. Detchibe.mp3
Y
Música / Prefuse 73 / Extintor de una palabra / 07 - Detchibe.mp3
Tenga en cuenta que son canciones duplicadas pero el 07 * . * & the 07 - está engañando a los buscadores de archivos duplicados que buscan en función de los nombres de los archivos.
11.10
banshee
music
duplicate-files
John McKean Pruitt
fuente
fuente
Respuestas:
Puede usar
fdupes
como la respuesta a la pregunta »Cómo encontrar y eliminar archivos duplicados« sugerido. Déjame dar un ejemplo:Primero creé el directorio como en tu ejemplo. Luego hice un archivo a partir de datos aleatorios y copié su contenido a otros archivos. Cuando ejecuto
fdupes -rd
el software encuentra los dos archivos exactos y pregunta cuál eliminar.Si tiene muchos archivos, puede usar la opción
-1
.fdupes
imprimirá todos los duplicados en una sola línea. Puede procesarlos conxargs
y otras funciones de shell.fuente
fdupes
no parece sumergirse en subcarpetas. Por ejemplo,~/Desktop/Dupes2/
tiene una carpeta titulada Blood Sugar Sex Magik with the Dupes, pero un simplefdupes -r
comando no devuelve ninguna lista.Encontré una cadena de comandos algo simple. Muchas gracias a @Oli.
Esto solía
fdupes
recursivamente (-r
) encontrar los engañados, omitiendo el primero (-f
). Bash lee esta línea por línea a través deread
amd maneja cada líneamv
para mover todos los duplicados a otro directorio. Tenga en cuenta el uso de comillas en elwhile
bucle para manejar espacios y otros signos de puntuación dudosos quefdupes
no manejarán (incluso con-1
/--sameline
).fuente
En las respuestas a la cuenta manual de escucha de pistas en Banshee? , describe cómo acceder a la base de datos que utiliza banshee para guardar toda la información de la pista.
Una vez que esté conectado a la base de datos, en la tabla de consulta de ejecución, pegue
en el cuadro de cadena SQL, luego haga clic en 'ejecutar consulta'. Esto le mostrará todas las pistas que tiene con el mismo título ignorando espacios, guiones y puntos. Si hay otros caracteres que desea ignorar, agréguelos a la consulta en el mismo patrón. (Es decir, agregue
replace(
antes del primer "reemplazar" existente y después del último ")" en esa línea, agregue, '[character you want removed]', '')
.(No sé cuánto sabe sobre sql; si necesita más detalles, publique un comentario).
Esto te dará una lista de títulos. Tendrá que hacer la eliminación usted mismo.
Puede haber una mejor manera de hacer esto, pero si la hay, no lo sé.
Una vez que tenga una gran lista de archivos para eliminar (ya sea de mi método o de los
fdupes
que otros han mencionado), coloque la lista de archivos que desea eliminar en un directorio de texto. Asegúrese de que uno de los siguientes es verdadero:Opción n. ° 1: los nombres de archivo contienen la ruta completa. Por ejemplo, el archivo puede contener:
Opción n. ° 2: los nombres de archivo contienen una ruta relativa, y el archivo con la lista de nombres de archivo se guarda en la carpeta principal. Por ejemplo, si su lista de archivos se guardó
/home/doneill/music/
, contendría:En cualquier caso, abra una ventana de terminal y cambie a la carpeta que contiene el archivo con la lista,
cd /home/doneill/music/
por ejemplo.Escribir:
(Reemplazando filelist.txt con el nombre del archivo con la lista). Esto debería escupir una lista de todos los archivos que desea eliminar. Tómese un momento para revisar la lista. Si es correcto, escriba:
Esto básicamente le dice a su computadora: para cada línea en el archivo
filelist.txt
, elimine un archivo con el nombre en la lista.fuente
sqlitebrowser
si no está en su menú cuando lo instala). 2) Archivo -> Abrir. 3) Escriba/home/[user]/.config/banshee-1/
en la barra de direcciones 'Buscar en' (reemplace [usuario] con su nombre de usuario). 4) Haz doble clic enbanshee.db
.