Isso funcionará e manipulará nomes de arquivos que contenham espaços.
b='ls -t -1 | head -n2'
first="$(echo "$b" | head -n1)"
second="$(echo "$b" | tail -n1)"
diff "$first" "$second"
Este método tem a vantagem de apenas analisar a lista de diretórios uma vez, se o diretório em que você estiver executando tiver muitos (muitos milhares) de arquivos, poderá ser mais rápido.