tr
recebe entrada de STDIN (entrada padrão). Tente isto:
$ tr '\n' ':' > output_file < input_file
Você usou uma sintaxe para a expansão de parâmetros do Bash, mas está usando um arquivo como um parâmetro que não está correto, pois o parâmetro só pode ser variável ou um parâmetro especial do shell.
Para fazer o que você está tentando usando somente bash
:
$ var="$(<bash_list)"
$ echo "${var//$'\n'/:}" > bash_PATH
Agora o arquivo bash_PATH
conterá:
/bin:/usr/bin:/usr/local/bin:.:/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin:/usr/java/default/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
Observe também que você tem nomes de diretório duplicados em "$ PATH" (espere que sejam intencionais por exemplo), para remover as duplicatas sem alterar a ordenação, você pode tentar isso .