GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué Find no acepta '-exec Cp {} Dir +'?

Tengo un directorio, dir1 que contiene muchos archivos cuyos nombres terminan en .jpg o .png . Quiero copiar todos los .png archivos a dir2 que está vacío.

Este comando funciona:

find dir1 -name '*.png' -exec cp {} dir2 ;

pero este comando no:

find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'

También probé:

find dir1 -name '*.png' -exec cp {} -t dir2 +
find: missing argument to `-exec'

y:

find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'

Después de mirar esta página, incluso probé:

find dir1 -name '*.png' -exec cp {} dir2 {} +
find: Only one instance of {} is supported with -exec ... +

Esta página dice que:

-exec {} + se agregó en [versión] 4.2.12 en 2005

Mi versión de find es 4.4.2.

¿Qué estoy haciendo mal?

Respuesta aceptada:

Gracias a 'steeldriver', descubrí que la respuesta es porque la especificación POSIX prohíbe que algo esté entre {} y + después de -exec .


Linux
  1. ¿Por qué `exit &` no funciona?

  2. ¿Por qué find -exec mv {} ./target/ + no funciona?

  3. ¿Por qué no funciona sftp rmdir?

  4. ¿Por qué esta expresión regular no funciona en Linux?

  5. ¿Por qué usamos su - y no solo su?

¿Por qué `clear` no borra toda la pantalla?

encontrar:comando no encontrado

Linux, ¿por qué no puedo canalizar el resultado de búsqueda a rm?

¿Por qué es tan difícil encontrar un archivo en Ubuntu?

¿Por qué borrar el historial de bash no es suficiente?

¿Por qué find -mtime no funciona como se esperaba en archivos con diferentes zonas horarias?