Você precisa remover os backtics em torno do comando tar
. Você também pode querer canalizar o ls
através do xargs
para ter certeza de que o bash pega todos os diretórios corretamente:
for f in 'ls -d */ | xargs'; do tar -cvzf ${f%/}.tar.gz $f; done
Os backticks estão capturando a saída de tar
e tentando executá-la como um comando em cada iteração do loop. A primeira coisa que o tar
imprime quando você usa uma opção -v são as permissões em cada arquivo (por exemplo, drwxrwxr-x
). Neste caso, você quer bash para executar o comando tar, não capturar a saída.