GNU/Linux >> Znalost Linux >  >> Linux

Proč Find nepřijímá ‚-exec Cp {} Dir +‘?

Mám adresář dir1 který obsahuje mnoho souborů, jejichž názvy končí buď .jpg nebo .png . Chci zkopírovat všechny soubory .png soubory do dir2 který je prázdný.

Tento příkaz funguje:

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

ale tento příkaz ne:

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

Také jsem zkusil:

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

a:

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

Po zhlédnutí této stránky jsem dokonce zkusil:

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

Tato stránka říká:

-exec {} + byl přidán do [verze] 4.2.12 v roce 2005

Moje verze find je 4.4.2.

Co dělám špatně?

Přijatá odpověď:

Díky ‚steeldriveru‘ jsem přišel na to, že odpověď zní, protože specifikace POSIX zakazuje, aby cokoli bylo mezi {} a + za -exec .


Linux
  1. proč nefunguje sftp rmdir?

  2. Proč používáme su – a nejen su?

  3. proč smazání bash historie nestačí?

  1. Proč není CD program?

  2. Linux – proč používáme Su – a nejen Su?

  3. Proč find -mtime nefunguje podle očekávání u souborů s různými časovými pásmy?

  1. Proč dlouhé zpoždění poté, co příkaz nebyl nalezen?

  2. Proč „ukončit &“ nefunguje?

  3. find:příkaz nenalezen