В данном случае нет смысла иметь конвейер, так как первая часть конвейера не производит ввод для вторая часть, а вторая часть ничего не читает из стандартного ввода.
Вместо этого просто используйте
$ sort -o .file1 .file1
Это отсортирует файл .file1
"на месте".
При запуске конвейера оболочка создала .file2
как пустой файл, и mv
успел заменить .file1
этим до того, как sort
удалось отсортировать содержимое .file1
. Все части конвейера запускаются одновременно.
Для восстановления выполните восстановление из резервной копии.