1 votos

Comando de terminal para mover una serie de archivos que contienen corchetes a otra carpeta o a la papelera

Anoche consolidé una colección de música en un solo lugar y cada canción está separada por una carpeta de Artista y la pista. El problema es que hay un alto número de duplicados dentro de estas carpetas. Hay más de 3.000 carpetas de artista y en cada carpeta de artista hay un par de duplicados, así que no me gustaría adivinar cuántos duplicados hay en total.

El software que he utilizado para consolidar la música ha tomado cada pista duplicada y ha renombrado el archivo subsiguiente con un (1).mp3, o si tiene más de un duplicado, lo ha renombrado (2).mp3, (3).mp3 y así sucesivamente hasta renombrar el último número de duplicados encontrados para esa pista en particular.

Así que sentí que la mejor manera de eliminar estos era hacer una simple búsqueda "(1).mp3" en spotlight pero por alguna razón no me da los resultados correctos sin importar lo que intente. (Leí en alguna parte que tiene algo que ver con la configuración de linux/mac os). Así que luego miré en el uso de la terminal para buscar el directorio utilizando el comando apropiado. Pero esto tampoco parece funcionar. La ruta del directorio es:

/Volúmenes/Unidad de Audio/Música

Así que usé el comando

find /Volumes/AUDIO\ DRIVE/Music\ Database “(1).mp3"

que sí devuelve resultados, pero no de la forma que esperaba, es decir, devuelve muchos archivos, de los cuales sólo algunos tienen el (1).mp3 al final. La mayoría de ellos no tienen esto y son sólo pistas normales con .mp3 al final. por ejemplo, The Beatles - Ticket to Ride.mp3

Así que busqué un comando que me permitiera buscar estos archivos y mover los resultados a otra ubicación. Así que creé una carpeta llamada "Moved Files" que tiene un directorio de:

/Volúmenes/AUDIO\NDRIVE/Archivos movidos

Así que utilicé el siguiente comando que encontré en Internet...

find /Volumes/AUDIO\ DRIVE/Music\ Database “(1).mp3" -exec mv {} ~/Volumes/AUDIO\ DRIVE/Moved\ Files \;

que hace una de dos cosas dependiendo del humor que tenga la Terminal. O bien mueve los archivos equivocados al directorio especificado (tal vez debido a los resultados de búsqueda inexactos que tenía al principio) o me da el siguiente error:

-bash: error sintáctico cerca del token inesperado `)'

Si alguien por ahí puede ayudarme se lo agradecería mucho. Es realmente frustrante saber que si se tratara de una máquina Windows, todo lo que tendría que hacer es escribir *(1).mp3 en la barra de búsqueda y bloquear la eliminación de todos los resultados, pero honestamente no puedo encontrar una manera de evitar esto en un mac. Y "NO" puedo usar una máquina Windows ya que es un G Drive de apple que tiene todo el audio almacenado en él.

2voto

find espera un patrón y no sólo un nombre, por lo que podría obtener mejores resultados con

find /Volumes/AUDIO\ DRIVE/Music\ Database -name '*(1).mp3' -print

2voto

siva Puntos 23

Simplemente utilice Spotlight en Finder para buscar archivos con *(1).mp3, etc. Inicie una nueva búsqueda en Spotlight, añada una regla de Raw Query y utilice lo siguiente, luego seleccione todo y elimine.

kMDItemDisplayName=='*(1).mp3'

0voto

Andrew Salmon Puntos 6789

Parece que el error en tu comando de terminal se debe a un mal corte y pegado. Sustituye la primera " por " , para que el comando final sea el siguiente:

find /Volumes/AUDIO\ DRIVE/Music\ Database -name "*(1).mp3" -exec mv {} ~/Volumes/AUDIO\ DRIVE/Moved\ Files \;

Si tienes confianza con el terminal te sugiero que instales fdupes o el tenedor fdupes-jody y luego:

fdupes -r dir1 dir2 | grep dir1/ | xargs rm 

para eliminar los duplicados en dir1 .

Espero que esto ayude.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X