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 – Jak zrušit sdílení sítě pro aktuální proces?
Výchozí instalace Solaris (nástroje uživatele)?