Olhando para a implementação de sort
que eu tenho acesso mais fácil (OpenBSD's), parece que você perderia dados se o arquivo de entrada fosse anexado entre
- o utilitário
sort
terminou de ler os dados do arquivo de entrada e começou a classificação real e - o utilitário
sort
renomeando seu arquivo de saída temporário para o nome do arquivo de saída real (fornecido pelo argumento-o
) antes de sair.
Eu não consigo ver uma maneira de evitar isso, a não ser parar temporariamente qualquer processo de gravação no arquivo antes de classificá-lo e, em seguida, iniciá-lo novamente quando a classificação estiver concluída. Isso pode ser feito com kill -STOP
e kill -CONT
, respectivamente.
O processo de gravação no arquivo precisará abri-lo para gravação novamente, do contrário, ele gravaria em um arquivo que não está mais na estrutura de diretórios (desde que foi substituído). O GNU sort
parece substituir o conteúdo do arquivo original pelos dados classificados, portanto, isso não é um problema.