spider:/var/logtransfer/dc-fw1# find . -name pflog.*.gz -exec zcat {} |
tcpdump -entttv -r - \;
find: -exec: no terminating ";"
Find -exec invokes the command directly using exec(2). There's no shell
underlying the command, so pipes are out (even if you had correctly
escaped the '|').
The easiest way out of this is to put the compound command into a shell
script and have find run that. E.g.:
cat > scanlog << _HOOPY_FROOD
#!/bin/sh
zcat $1 | tcpdump -entttv -r -
_HOOPY_FROOD
chmod +x scanlog
find . -name 'pflog.*.gz' -exec ./scanlog '{}'
--lyndon
Our users will know fear and cower before our software! Ship it! Ship it
and let them flee like the dogs they are!