find -- ez most kiszúrás, vagy csak szórakozik velem?

 ( NevemTeve | 2014. május 7., szerda - 18:00 )

find . -name Makefile -exec echo {}.extension \;

Ez a find-parancs AIX5.3-on a következőt generálja:

{}.extension
{}.extension
{}.extension

Na ez most kiszúrás, vagy csak szórakozik velem?

20140508.0508: Köszönöm a hozzászólásokat, azóta működik a kerülő-módszerrel ( vagyis átirányítással egy 'while read FILENAME; do'-ba)

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

És ha teszel egy szóközt a pont elé?
Valami rémlik a múltból, hogy bizonyos find implementációk csak önálló argumentumként fogadják el a {}-t.

Nem tudom, AIX-re telepíthető-e GNU find...

> És ha teszel egy szóközt a pont elé?
> Valami rémlik a múltból, hogy bizonyos find implementációk csak önálló argumentumként fogadják el a {}-t.

Bizony, csak nekem nem az kell...

> Nem tudom, AIX-re telepíthető-e GNU find...

Igen, csak most éppen egyszerűbb volt meghaxolni a scriptet:
find ... | while read N; do ...; done

Valahogy az AIX-szal folyamatosan ez az élményem: ez sem megy, azt sem tudja, emez is kevésbé flexibilis...

A szóközt nem megoldásként javasoltam, csak próbaképp, hogy úgy megy-e :)

Igen, kipróbáltam csak a {}-t önmagában, úgy megy.

Jól emlékszel, ez egy eléggé jellemző bug volt a find-nál (illetve hát vannak, akik szerint INABIAF)

\{\}.ext módon próbáltad?

sztem azt akarja, hogy -print | xargs-ot használjál.

AIX:
The end of the specified command must be punctuated by a semicolon in quotation marks, an escaped semicolon, or a plus sign. An argument containing the two characters {} (braces) must be followed by a plus sign that punctuates the end of the specified command. A command parameter {} (braces) is replaced by the current path name.

Linuxon:
The string `{}'
is replaced by the current file name being processed everywhere
it occurs in the arguments to the command, not just in arguments
where it is alone, as in some versions of find.