Reste los files en la carpeta A de la carpeta B

Tengo la carpeta A con 8000 imágenes y la carpeta B con 9000 imágenes. La carpeta B contiene las 8000 imágenes de la carpeta A y 1000 imágenes adicionales. Me gustaría eliminar las 8000 imágenes que ya están en la Carpeta A, dejando solo las "1000" nuevas imágenes.

¿Alguien sabe una manera elegante de hacer el trabajo? (por cierto, no puedo orderarlos por date y get los más nuevos)

  • ¿Cómo desactivo Cmd-D en Terminal?
  • Advertencia de Homebrew: "No hay herramientas de desarrollador instaladas" aunque Xcode está instalado
  • PDFs que muestran páginas en blanco en todas las aplicaciones en El Capitan
  • Cómo soluciono este problema de permiso de sudo - UID 503, debería ser 0 - El Capitan
  • Uso de tmux y pbpaste, pbcopy y launchctl
  • ¿Es posible get el set completo de opciones de Unix para las herramientas de command-line en OS X?
  • pantalla verde en blanco en Vista previa
  • ¿Cómo obtengo diferentes colors para directorys, etc. en iTerm2?
  • Opción + clic en iTerm
  • ¿Cómo elimino un file invisible bloqueado en la Papelera?
  • La terminal parpadea en un espacio vacío con Yosemite
  • Vista previa de no abrir el file: emisión de permissions (a través de Python)
  • 4 Solutions collect form web for “Reste los files en la carpeta A de la carpeta B”

    Puedes usar un script bash simple para hacer esto ::

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

    Este script asume que ya está en FolderB, que es donde desea eliminar los files que ya existen en FolderA.

    Puede modificarlo si conoce la extensión de los files de image (es decir, .png, .gif, etc.) y tiene los nombres exactos de las carpetas. Entonces, en lugar de *.* Puedes usar *.png o *.gif .

    Una versión MUCHO más segura:

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

    Esto moverá el file a la Papelera. Usar rm es una calle de sentido único. Una vez que pulses enter en un command rm , ya está hecho; ese file se ha ido para siempre Múdate a la Papelera para asegurarte de que obtienes los resultados que estás buscando.

    Si ha instalado los findutils GNU a través de homebrew, puede hacer un cd a la folderB en el terminal e ingresar

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

    Verifica la salida. Si enumera los files que desea eliminar, repita sin el echo para eliminar realmente los files.

    El find pnetworkingeterminado del sistema no tiene -printf , pero escribir

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

    (¡también emitido desde folderB !) debería hacer el mismo trabajo (no puedo probarlo aquí).

    • Cree un duplicado de la carpeta A: A-copy.
    • Abra Terminal e ingrese touch -mt 200001010000 /path/to/A-copy/*.*
    • Mueva los files de A (copyr) a B y reemplace los files existentes allí.
    • Ordene los files en la carpeta B por date de modificación.
    • Elimine todos los files con la date de modificación 1 de enero de 2000 en la carpeta B

    Esto no modificará las dates de modificación de los files originales en la carpeta a.


    Si la carpeta A ya contiene files con date de modificación del 1 de enero de 2000, elija otra date en el paso 2.

    Si la carpeta B tiene todas las imágenes de la carpeta A más un adicional de 1000, simplemente elimine la carpeta A!

    Simples!

    Sin embargo, si tiene la carpeta B tiene 9000 imágenes y la carpeta A tiene 9000 imágenes, pero existe una disparidad entre ellas de que la carpeta B no tiene todas las imágenes de la carpeta A y luego usa diff para encontrar la diferencia.

    Habiendo dicho eso, esto solo será una diferencia de nombre de file. Es posible que tenga dos imágenes que comparten el mismo nombre, que es un problema completamente diferente.

    El código:

    diff -rq folder1 folder2

    El r le dice a diff que mire cada directory recursivamente, incluidos los subdirectorys. El interruptor q establece el modo diff breve. Si no configuramos el modo breve, diff no solo le diría qué files son diferentes entre las dos carpetas, sino que también mostrará las diferencias reales línea por línea para los files de text que existen en ambas ubicaciones pero que no son idénticos.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).