Na verdade, não faz sentido ter um pipeline nesse caso, já que a primeira parte do pipeline não está produzindo entrada para a segunda parte, e a segunda parte não lê nada a partir da entrada padrão.
Em vez disso, use apenas
$ sort -o .file1 .file1
Isso classificará o arquivo .file1 "no lugar".
O que aconteceu quando você executou seu pipeline foi que o shell criou .file2 como um arquivo vazio e mv teve tempo de substituir .file1 com isso antes que sort conseguisse classificar o conteúdo de .file1 . Todas as partes de um pipeline são iniciadas simultaneamente.
Para recuperar, restaure a partir do backup.