A pegadinha usual com a opção tar
--exclude
é que ela é relativa ao argumento do diretório dado
$ tree dir
dir
└── subdir
└── subsubdir
├── file1
├── file2
└── file3
2 directories, 3 files
então
$ tar cvf dir.tar.gz --exclude='/dir/subdir/subsubdir/*' dir
dir/
dir/subdir/
dir/subdir/subsubdir/
dir/subdir/subsubdir/file1
dir/subdir/subsubdir/file2
dir/subdir/subsubdir/file3
falha ao excluir o conteúdo de subsubdir
(está tentando excluir dir/dir/subdir/subsubdir/*
, que não corresponde a nada); o que você quer é
$ tar cvf dir.tar.gz --exclude='subdir/subsubdir/*' dir
dir/
dir/subdir/
dir/subdir/subsubdir/
AFAIK a ordem não importa, exceto que o arquivo de saída deve seguir imediatamente a opção f
.