O problema é que o redirecionamento de saída mata o arquivo antes que less
seja iniciado:
open("file", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
dup2(3, 1) = 1
close(3) = 0
execve("/usr/bin/less", ["less", "-WNS", "file"], [/* 102 vars */]) = 0
O redirecionamento de saída normal sobrescreve o arquivo. O O_TRUNC
(consulte man 2 open
) exclui o conteúdo do arquivo.