Toto udělá, co chcete:
for f in *; do >$f; done
Nemůžete použít přesměrování (> ) v rámci find -exec přímo, protože k tomu dojde před spuštěním příkazu a vytvořením souboru s názvem {} . Chcete-li to obejít, musíte to udělat v novém prostředí pomocí sh -c .
Také si uvědomte, že nemusíte cat /dev/null > file za účelem zablokování souboru. Můžete jednoduše použít > file .
Zkuste toto:
find . -type f -exec sh -c '>"{}"' \;