Usando apenas os recursos disponíveis no AIX ou em outros sistemas POSIX e quase nenhum:
find /usr/something/* /usr/something/.[!.]* /usr/something/..?* \
-prune -type f -user antoine -exec zip -r /tmp/file.zip {} +
find recursa em subdiretórios. Para evitar isso, -prune diz para não descer nos diretórios que encontra. Isso não é bom se eu executar find /usr/something -type d -prune -o … , porque /usr/something será ignorado. Por isso, corro find em todas as entradas desse diretório, exceto . e .. .
Um idioma mais fácil é mudar para o diretório e tratar o diretório inicial . especialmente. Aqui, isso alteraria o archive resultante, que teria caminhos no formato ./foo em vez de usr/something/foo . Essa técnica depende do fato de que -name . corresponde apenas ao diretório inicial, todos os outros arquivos encontrados terão seu próprio nome.
cd /usr/something &&
find . ! -name . -prune -type f -user antoine -exec …
Observe que zip pode ser executado mais de uma vez se a lista de nomes de arquivos for muito longa para uma única chamada. Isso é ok porque zip -r substitui os arquivos existentes no arquivo; Se você usar outro arquivador, tome cuidado para não invocá-lo em um modo em que ele criaria um novo arquivamento (por exemplo, não use tar -c ).