#!/bin/sh
htaccess='/path/to/.htaccess'
for dir in /home/*/public_html/; do
if [ -e "$dir/.htaccess" ]; then
print 'htaccess exists in "%s"\n' >&2
else
cp "$htaccess" "$dir"
fi
done
Isso itera sobre todos os diretórios public_html em cada diretório em /home e verifica se já existe um arquivo .htaccess nele. Se houver, uma mensagem de diagnóstico será produzida, caso contrário, um padrão .htaccess será copiado de algum lugar.
Você executaria isso com
$ ./script 2>error.log
O problema com o seu código é o cd . Ele altera o diretório para um dos diretórios public_html (se executado a partir de /home ), mas nunca volta novamente.