Você também tem um alias em functons.sh com o mesmo nome de uma função em seu outro arquivo.
Em functons.sh :
alias zzz=sz
Em z.sh :
zzz () {
df -h
}
Isso confunde bash .
Exemplo:
$ cat f1
foo () { echo hello; }
alias xfoo=foo
$ cat f2
xfoo () { echo beep; }
$ source f1
$ source f2
$ shopt -s extdebug
$ declare -F foo
foo 1 f2
Sem o xfoo alias em f1 :
$ source f1
$ source f2
$ shopt -s extdebug
$ declare -F foo
foo 1 f1
O manual bash também inclui o texto
Aliases are confusing in some uses.
sob o título "BUGS".