Вы путаете $(…)с <(…). Вы использовали прежние, который проходит выходной сигнал в качестве аргументов в vimdiff. Например, если последняя строка /path/to/fooсодержит bar bar bar, то следующая команда
echo $(tail -1 /path/to/foo)
эквивалентно
echo bar bar bar
Вместо этого вам нужно использовать <(…). Это называется замена процесса , и передает выходной сигнал в виде псевдо-файла в vimdiffкоманде. Следовательно, используйте следующее.
vimdiff <(tail /tmp/cachain.pem) <(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)
Это работает в bash и zsh, но, по-видимому, в tcsh нет способа выполнить подстановку процессов.