cat /dev/null > file.txt é um uso inútil do gato .
Basicamente cat /dev/null simplesmente resulta em cat sem nada. Sim funciona, mas é desaprovado por muitos porque resulta em invocar um processo externo que não é necessário.
É uma daquelas coisas que é comum simplesmente porque é comum.
Usar apenas > file.txt funcionará na maioria dos shells, mas não é totalmente portátil. Se você quiser totalmente portátil, as seguintes alternativas são boas:
true > file.txt
: > file.txt
O : e o true não geram dados e são internos do shell (enquanto cat é um utilitário externo), portanto, são mais leves e mais 'adequados'.
Atualização:
Como tylerl mencionou em seu comentário, há também a sintaxe >| file.txt .
A maioria dos shells tem uma configuração que os impedirá de truncar um arquivo existente via > . Você deve usar >| . Isso é para evitar erros humanos quando você realmente quis acrescentar com >> . Você pode ativar o comportamento com set -C .
Então, com isso, acho que o método mais simples, mais adequado e portátil de truncar um arquivo seria:
:>| file.txt