A melhor abordagem para isso é usar | bash
.
Então, basicamente, você apenas ecoa seu comando. Aqui no meu exemplo rm file1 file2
e, em seguida, | bash
executará a saída.
[ws] user ~ >echo "rm file1 file2"
rm file1 file2
[ws] user ~ >echo "rm file1 file2" | bash
rm: cannot remove ‘file1’: No such file or directory
rm: cannot remove ‘file2’: No such file or directory
@ Kusalananda, Se você tem espaço no nome do arquivo, você só precisa adaptar a primeira parte para manter as aspas no comando echo:
echo "rm \"file with space\"" | bash