Algo como isso talvez?
find . -type d -name data \
\! -exec test -f {}/Archive.zip ';' \
-execdir zip -rj data/Archive.zip data ';'
Isto localizaria cada diretório data
(primeira linha).
O \! -exec test -f {}/Archive.zip ';'
filtraria qualquer diretório data
que não contenha nenhum arquivo chamado Archive.zip
.
Esta linha pode ser substituída por \! -execdir test -f data/Archive.zip ';'
.
O último -execdir
executaria o comando zip
fornecido dentro do diretório pai do diretório data
. Isso criaria data/Archive.zip
contendo os arquivos em data
(sem nenhum caminho anexado aos nomes de arquivos arquivados).
Isso é semelhante a minha resposta à sua pergunta anterior , mas com o teste da existência de data/Archive.zip
inserido.