ls
é executado em qualquer diretório atual. De seus resultados, deve ter sido /home/user/domains/
. Se você quiser trabalhar nos diretórios em $ sitedir, mude para esse diretório primeiro:
cd "$sitedir"
for i in */ ; do
( cd "$i" && tar -czf $tbackups/${i%%/}".tar.gz" public_html >> $logs/backups.log ; )
done
Usando */
em lugares de ls
, o shell retorna uma lista de diretórios, o que parece ser o que você quer, em vez de apenas qualquer arquivo.
Por último, eu coloquei o processamento de "$ 1" entre parênteses (um subshell) para que, quando o processamento terminar, o script esteja de volta em "$ sitedir" e pronto para o próximo loop.