Em termos de funcionalidade, acho que são iguais.
Se eu tivesse que arriscar um palpite sobre o que é mais rápido, eu diria que o cp comando porque seu propósito é fazer operações de arquivo apenas para propósitos de cópia, então seria otimizado para isso.
cat , em contraste, significa concatenar arquivos, significando juntar vários arquivos em uma série. Se nenhum arquivo for especificado, ele exibirá um arquivo no console (graças ao @bahamat para nos lembrar). Neste exemplo, a saída é redirecionada para outro arquivo. Acho que esse indireito seria menos eficiente que um cp
direto.
Eu não sei se a diferença seria perceptível para arquivos de tamanho normal, embora seria interessante cronometrá-los em arquivos muito grandes. Eu acho que alguém poderia fazer testes repetidos com / usr / bin / time e ver se um é consistentemente mais rápido / lento que o outro.
Você tem alguma razão em particular para perguntar sobre isso, ou é apenas uma simples curiosidade (nada de errado com isso, é claro)