Se você olhar para a manpage de tar , você verá:
-X, --exclude-from FILE
exclude patterns listed in FILE
O documento info fornece mais detalhes.
Portanto, list precisa ser uma lista de padrões, não nomes de arquivos. Um padrão , como normal, significa um padrão curinga da shell. Portanto, no mínimo, * , [ ] e ] são especiais. Possivelmente { e } também.
A documentação também menciona que você pode mudar isso passando --no-wildcards . Então os nomes serão combinados literalmente, não como padrões. --no-wildcards precisa ir antes do -X .
[Este é o tar GNU que eu verifiquei. Outras implementações de alcatrão provavelmente diferem.]