É porque você diz para fazer isso ;-)
Eu faria algo assim:
cd /tmp && zip -r /tmp/bar.zip ./foo/* >/dev/null 2>&1
zip -r /tmp/foo/bar.zip /tmp/foo/* > /dev/null 2>&1
e o alcance está nessa estrutura
/tmp
/foo
file1
file2
dir1/
file3
dir/2
file4
Por que /tmp
faz parte da estrutura?
É porque você diz para fazer isso ;-)
Eu faria algo assim:
cd /tmp && zip -r /tmp/bar.zip ./foo/* >/dev/null 2>&1
Tags zip