为什么rm -rf `ls|egrep -v 'test'`在在命令行无法执行,在脚本中却可以执行

命令目的:删除当前目录下除test文件之外的所有文件;
问题:在命令行中执行rm -rf ls|egrep -v 'test'之后,没有回显也没有报错,然后ls之后发现并没有删除其他文件
解决:我在perl脚本中插入system("rm -rf ls|egrep -v 'test'"),执行该脚本发现可以成功删除除test之外的文件

请问,一样的命令在不同的环境下,为什么会结果不同呢?谢谢

图片说明