孙悟空从哪里来?从胡人石盘陀,到杂取种种猴,合成这一只

猴子好色抢女人这个问题,过去的学者基本还只能依据文献谈,后来又多了一个材料。就是在四川新津,发现了一些汉代的石棺,棺材上的雕刻就有猿猴抢女人,后面人在追赶的画面。可以推想,当地这种传说应该是非常流行。

孙悟空这只猿猴,就是人的心神,开始是放纵的,上天下地,谁也管不了,但最后紧箍咒来了,“使心猿驯伏,至死靡他”,这只心猿就被驯服了,再也没有别的想法了,这就是孟子的“求放心”的隐喻。

责任编辑:陈斌

《黑神话·悟空》空前成功,带起了大家对《西游记》与孙悟空的兴趣。不少人关注这只猴子的“国籍”:他是印度猴还是中国猴?抑或还有中国与印度之外的血统?从石头里蹦出来的孙悟空究竟是什么来源?或者说,有哪些来源?这里掰扯掰扯。

胡人与猢狲

说到孙悟空,首先要说的一个人物,是石盘陀。

《大唐大慈恩寺三藏法师传》里讲到,玄奘法师在瓜州的时候,收一个叫石盘陀的年轻胡人为弟子:

于是装束,与少胡夜发。三更许到河,遥见玉门关。去关上流十里许,两岸可阔丈余,傍有胡桐树丛。胡人乃斩木为桥,布草填沙,驱马而过。法师既渡而喜,因解驾停憩,与胡人相去可五十余步,各下褥而眠。少时胡人乃拔刀而起,徐向法师,未到十步许又回。不知何意,疑有异心,即起诵经,念观音菩萨。胡人见已,还卧遂眠。天欲明,法师唤令起取水盥漱,解斋讫欲发。胡人曰:“弟子将前途险远,又无水草,唯五烽下有水,必须夜到偷水而过,但一处被觉,即是死人。不如归还,用为安稳。”法师确然不回。乃俛仰而进,露刀张弓,命法师前行。法师不肯居前,胡人自行数里而住,曰:“弟子不能去。家累既大而王法不可忤也。”法师知其意,遂任还。胡人曰:“师必不达。如被擒捉,相引奈何?”法师报曰:“纵使切割此身如微尘者,终不相引。”为陈重誓,其意乃止。与马一匹,劳谢而别。

石盘陀帮助玄奘克服了一路上的不少困难,但接下来就发生了惊险的一幕:他半夜里竟然要杀害玄奘法师:因为他有家室之累,更害怕此行违背大唐法令,一旦被发觉,会被处死。

最终他没有动手,但到底离玄奘法师而去了。

对照《西游记》的话,唐僧的徒弟里,恋家的是猪八戒;曾想杀死唐僧,也曾经离唐僧而去的,是孙悟空。石盘陀身上,有八戒的因素,也有孙悟空的因素。

石盘陀在释门中的身份,是行者。

他姓石,孙悟空是石猴。

汉人鄙视胡人,会骂胡人像猢狲,石盘陀是胡僧,说他是猢狲更像是在玩谐音梗。《西游记》里孙悟空也是差点姓胡的,菩提祖师见了猴哥,说是像个“猢狲”,发表了一番高论,才舍胡而用孙的。

有可能,唐僧故事传播的过程中,这个胡人石盘陀,变成了一只猴子。

哈奴曼

胡适、陈寅恪、季羡林等学者认为,孙悟空形象来源是一只印度猴。

最简单化地说,古印度史诗《罗摩衍那》中有这样一个故事:

罗摩是一个王子,因为复杂的前情,和妻子息妲住在森林里。结果,息妲被楞伽城十首罗刹王罗波那看中了,罗波那设计,抢走了息妲。

罗摩当然要把妻子夺回来,但他势单力孤,就要去找援兵。哪儿有援兵呢?按照他的好朋友金翅鸟王的建议,去猴子国。

猴子国的猴王,倒是不必多说,重点是,有位神猴哈奴曼,是风神的儿子,神通广大,正义感极强。——很多研究者认为,这只猴,就是孙悟空的原型。

总结下来的理由主要有这些:

哈奴曼的兵器,中文一般翻译成“虎头如意金棍”。——这个翻译有点故意和孙悟空套近乎,哈奴曼的塑像、画像在南亚地区很常见,兵器是个锤子。

在哈奴曼的极力主张下,猴王终于同意出兵帮助罗摩。

罗摩率领猴兵来到海边,楞伽城在海对岸,哈奴曼决定先去打探消息,只见他纵身一跃,就到了海对岸。——这个飞行能力,让人联想到筋斗云。

途中,哈奴曼还遇到了阻拦。其中一个挑战是,有个罗刹女,想吃掉哈奴曼,哈奴曼就故意被她吃进去,然后就在她肚子里杀了她。——孙悟空特别善于使用钻肚皮的战术,尤其是钻铁扇公主的故事最有名,而铁扇公主也是罗刹女。

接下来哈奴曼来到楞伽城。他变成一只猫,潜入城内,到处探视,最后来到御花园,发现了被魔王囚禁的息妲,并亲眼看到息妲坚贞不屈、抗拒魔王引诱的情景。终于,哈奴曼找到机会,和息妲见面,他拿出罗摩的戒指,证明了自己的身份,我是你丈夫请来救你的。——《西游记》里,有一个朱紫国的故事,也是说王后被妖怪抓走了,国王请孙悟空去打妖怪救皇后,孙悟空到妖怪洞中,见到娘娘,要证明自己的身份,是拿出一串娘娘的黄金宝串,这个情节,可以说是相似度极高。

然后,哈奴曼想看看魔王罗波那到底有多大本事,他大闹楞伽城。这个过程也有意思:中间,

登录后获取更多权限

立即登录

校对:吴依兰

欢迎分享、点赞与留言。本作品的版权为南方周末或相关著作权人所有,任何第三方未经授权,不得转载,否则即为侵权。

{{ isview_popup.firstLine }}{{ isview_popup.highlight }}

{{ isview_popup.secondLine }}

{{ isview_popup.buttonText }}