2 votos

Quitar los archivos de carpeta A carpeta B

Tengo carpeta A 8000 imágenes y carpeta B con 9000 imágenes. Carpeta B contiene las 8000 imágenes de carpeta A, así como imágenes adicionales de 1000. Me gustaría borrar las imágenes de 8000 que ya están en carpeta A, dejando sólo las "nueva" 1000 imágenes.

¿Alguien sabe una manera elegante de hacer el trabajo? (por cierto. No puedo ordenarlos por fecha y obtener los más recientes)

2voto

Douglas Puntos 10417

Usted puede utilizar un simple script de bash para hacer esto::

for file in *.*; do if [ -f "/FolderA/${file}" ]; then rm "/FolderB/$file"; fi; done;

Esta secuencia de comandos se supone que ya está en FolderB, que es donde usted desea eliminar los archivos que ya existen en FolderA.

Usted puede ajustar si conoce la extensión de los archivos de imagen (es decir, .png, .gif, etc) y que tiene exactamente los nombres de carpeta. Así que en lugar de *.* puede utilizar *.png o *.gif.

Una manera MUCHO más segura versión:

for file in *.*; do if [ -f "/FolderA/${file}" ]; then mv "/FolderB/$file" ~/.Trash; fi; done;

Esto va a mover el archivo a la Papelera. El uso de rm es de un solo sentido la calle. Una vez que usted pulse enter en un rm comando, fue hecho; que el archivo se ha ido para siempre. Mover a la Papelera para asegurarse de que usted consiguió los resultados que usted está buscando.

1voto

Philippos Puntos 146

Si usted tiene instalado GNU findutils a través de homebrew, puede cd a folderB en la terminal y escribe

echo rm $(find /path/to/folderA -type f -printf "%P\n")

Compruebe la salida. Si se enumeran los archivos que desea eliminarse, de la repetición, sin la echo a extraer los archivos.

El valor predeterminado find de que el sistema no tiene -printf, pero la escritura

echo rm $(find /path/to/folderA -type f -execdir {} \; )

(publicado también desde folderB!) debe hacer el mismo trabajo (no se puede probar que aquí).

1voto

klanomath Puntos 19587
  • Crear un duplicado de la carpeta:-copia.
  • Abrir Terminal y escriba touch -mt 200001010000 /path/to/A-copy/*.*
  • Mover los archivos de Un(copia) a la B y reemplazar los archivos existentes allí.
  • Ordenar los archivos en la carpeta B, por fecha de modificación.
  • Para eliminar todos los archivos con el mod de la fecha de 1 de enero de 2000 en la carpeta B

Esto no va a modificar el mod de las fechas de los archivos originales en una carpeta.


Si la carpeta ya contiene archivos con un 1 de enero de 2000 mod fecha de elegir otra fecha en el paso 2.

-1voto

mrpixel Puntos 11

Si la carpeta B tiene todas las imágenes de Una carpeta más un adicional de 1000, entonces basta con borrar la carpeta!

Simple!

Sin embargo, si usted tiene la carpeta B cuenta con más de 9000 imágenes y la carpeta de Una cuenta con más de 9000 imágenes, sino que hay una disparidad entre ellos que la carpeta B no tiene todas las imágenes de Una carpeta, a continuación, utilizar diff para encontrar la diferencia.

Habiendo dicho eso, esto sólo será un nombre de archivo diferencia. Usted puede tener dos imágenes que comparten el mismo nombre, que es una cuestión totalmente diferente!

El código:

diff -rq folder1 folder2

La r indica diff para buscar en cada directorio de forma recursiva, incluyendo subdirectorios. El q cambiar conjuntos de diff breve modo. Si no empezamos breve modo, diff no sólo te dice que los archivos son diferentes entre los dos carpetas, pero también mostrar el verdadero línea-por-línea de diferencias de cualquier archivos de texto que existen en ambos lugares, pero no son idénticas.

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