《史记·项羽本纪》记载,在秦末农民起义中,项羽曾率军攻克襄城并制造了全城“皆阬之”[1]300事件。这个襄城的地望,古今注家学者一般都认为是秦汉颍川郡襄城或唐代许州襄城(均为今河南襄城县),但也有学者注之为今河南睢县。王健先生《〈史记·项羽本纪〉襄城地望纠误与考实》[2]300(下简称王文) 对此提出不同意见,认为项羽攻打并制造坑杀惨案的襄城,不可能是秦颍川郡襄城,而应是秦朝泗水郡相县,位于今安徽淮北市。笔者认为,王文正确指出项羽攻克的襄城并非颍川或许州襄城,这是值得肯定的;但项羽所克的襄城也不可能是秦泗水郡相县,而应为秦砀郡襄邑县(今河南睢县)。本文试述鄙见,教正于王先生和诸位读者。
王文通过军事史实、交通、地理环境及地名诸方面研究,认为该襄城项羽所攻打的襄城,不在颍川郡,而应为秦代泗水郡相县。王文所论对于否定项羽所攻打的襄城为颍川郡襄城,很有说服力;但文中所论亦有不符合史实及文献记载之处,不能证明项羽所攻打的襄城为秦泗水郡相县。
首先,从军事史实来说。王文认为,当时项梁派朱鸡石、馀樊君至栗县与章邯所率秦军作战,项羽则从侧翼攻打襄城作配合,“属于从侧翼骚扰袭击章邯秦军的性质”,从而将项羽攻打的襄城推断为靠近栗县(今河南夏邑县) 的秦泗水郡相县(今安徽淮北市)。这可商榷。《史记·项羽本纪》:“(项梁) 军胡陵,将引军而西。章邯军至栗,项梁使别将朱鸡石、余樊君与战。余樊君死。朱鸡石军败”[1]299。王文据此认为:“章邯率秦军占领了栗县……项梁派遣别将朱鸡石、余樊君向西进攻章邯,但二将根本不是章邯的对手,很快败下阵来。”这里认为击败朱鸡石等的秦军是由章邯亲自统率,其实不然。《史记》月表载,秦二世二年端月(正月),“章邯已破涉,围咎(引者按,咎即魏咎) 临济”;四月,“临济急,周市如齐、楚请救”;六月,“咎自杀,临济降秦”[1]766-767。《史记·魏豹列传》谓:“章邯已破陈王,乃进兵击魏王于临济。魏王乃使周市出请救于齐、楚。齐、楚遣项它、田巴将兵随市救魏。章邯遂击破杀周市等军,围临济。咎为其民约降。约定,咎自烧杀。”[1]2589-2590《史记·田儋列传》亦载:“秦将章邯围魏王咎于临济,急。魏王请救于齐,齐王田儋将兵救魏。章邯夜衔枚击,大破齐、魏军,杀田儋于临济下。”[1]2643据上所载可知,章邯本人在击破陈胜起义军后,于秦二世二年一月进兵围攻魏王咎所据临济(今河南长垣县西南),四月临济急,六月城降。很显然,这期间临济被围攻之势无任何松动,章邯本人不可能率军离开临济往别处作战。《史记·高祖本纪》:“是时秦将章邯从陈,别将司马枿将兵北定楚地,屠相,至砀。东阳宁君、沛公引兵西,与战萧西,不利。”《索隐》:“谓章邯从陈别将,将兵向他处,而遣司马枿将领兵士,北定楚地,故如淳云‘枿,章邯司马’也。孔文祥亦曰‘邯别遣枿屠相’。又一说云‘从谓追逐之,言章邯讨逐陈别将,而司马枿别将兵北定楚’,亦通。”[1]353以上事《汉书·高帝纪》系于秦二世二年正月。可见章邯本人当时北上击魏,并未率军到上述楚地,到“楚地”的只是其部将。而据《史记·项羽本纪》和《汉书·高帝纪》所载可知,朱鸡石等在栗县败于秦军是在秦二世二年四月或五月。这正是章邯围攻临济最紧张的阶段。因此,至栗县的“章邯军”显然也并非王文所认为的“章邯所率秦军主力”,同样只能是属章邯部属而已。《史记》中常有用“某人+军”来称某人所统的军队、但此某人当时并不在其中的记述方式。例如《史记·秦楚之际月表》载刘邦义军“攻破东郡尉及王离军于成武南”[1]769-770, 《史记·曹相国世家》载曹参“击王离军成阳南”[1]2023,但当时王离本人率军在赵国围攻巨鹿,不可能与刘邦义军和曹参作战,以上“王离军”实际上只是指王离部属而已。至栗县的“章邯军”其实亦用指章邯部属,而章邯本人并不在其中①。由此可见,朱鸡石、馀樊君面对的秦军并不见得强大,则判断项羽攻打襄城是在侧翼配合朱鸡石等作战就显得缺乏根据。而且,我们似乎可以肯定,由于占据栗县的秦军实力并不强大,如果项羽所攻打的襄城是栗县附近的相县,那么就会大大吸引和牵制秦军兵力,朱鸡石等人即使不能取胜,但至少不会很快败下阵来。由此可知,项羽攻打襄城的行动对朱鸡山、馀樊君至栗县击秦军的行动并未起到有效的支持或配合作用,以此而推知,其所攻打的襄城就不大可能是位于栗县附近的相县。
①《史记》中还有称“项羽(籍) 军”“韩信军”,但项羽和韩信本人却不在其中的例子,详参拙文《楚汉陈下之战新探》(载《辽宁教育行政学院学报》2006年第5期)。
其次,从交通和地理环境的有关情况来看。王文认为,项梁起义军从胡陵谋求西进,而秦军至栗县(今河南夏邑县北),正好“正面封堵项梁的去向”;又认为,从彭城到河南商丘,必须经过栗县,朱鸡石、馀樊君的行动路线是“胡陵→彭城西→栗”,项羽则是“胡陵→彭城西→襄城”,因此项羽所攻打的襄城“当在胡陵以南,彭城以西,栗县以东的范围内”,从而将襄城判断为位于今安徽淮北市的秦泗水郡相县;同时,王文提到,“在商丘以西今河南睢县一带,秦朝砀郡(西汉属陈留郡) 有个襄邑县”,但又以此县“在栗之西”而认为其“不可能是项羽攻打的襄城”。这是不妥当的。如前所述,王文将项羽攻打襄城定性为从侧翼配合朱鸡石等向栗县进攻章邯秦军主力,此定性并不确切,则据此而将襄城判断在上面所说的范围内,显然并无牢固的立论前提和基础。而从交通和地理环境来看,王文认为从胡陵以南、彭城西到河南商丘必经栗县,这也欠妥。王文说:“考察当时的地理环境,栗县北面是古代黄河支流经过形成的茫茫孟诸泽,交通困难,孟诸泽北面是今山东菏泽地区,往栗县迂回绕道,交通不便,只能走孟诸泽以南。从彭城到商丘有两条道路,都必须经过栗县。”但王先生这里忽视了,孟诸泽以南是虞县(河南虞城县北),虞县在栗县西北,不经栗县而经虞县是完全可以西进的。当时刘邦起义军就曾有过这样西进的军事行动。《史记·曹相国世家》载:“(曹参) 攻胡陵,取之。……击秦司马枿军砀东,破之,取砀、狐父、祁善置。又攻下邑以西,至虞,击章邯车骑。攻爰戚。”[1]2021《绛侯周勃世家》载:“(勃) 攻胡陵,下方与。……攻丰。击秦军砀东。还军留及萧。复攻砀,破之。下下邑,先登。……攻蒙、虞,取之。击章邯车骑,殿。定魏地。攻爰戚、东缗,以往至栗,取之。”[1]2065-2066据以上所载,刘邦义军从胡陵经丰邑(今江苏丰县) 等地南下,不必经栗县,已西进至虞、蒙(河南商丘市东北) 等地并攻克之,然后再回师东返,攻取栗县。从时间上判断,刘邦义军的以上军事行动,也是在项羽率军攻打襄城之前。由此可知,王文认为项梁起义军西进必经栗县,而认定项羽所攻打的襄城“应在胡陵南,彭城西,栗县东的范围内”,难以成立。当时项羽如果从胡陵直接向西进军,经由丰邑、虞县、蒙县附近,完全可以进攻到秦襄邑县(今河南睢县) 城下。而事实上,项羽这样行动也是极有可能的,因为它完全符合项梁“将引军而西”的行动方略。也许有读者认为,项羽这样行动与朱鸡石等人行动无法密切配合,还是认为项羽南下彭城西较为合理。此说可商。项羽率军出发前往襄城的具体时间,史籍无载,但很可能是在项梁遣朱鸡石等往栗县击秦军之前,项梁遣朱鸡石等往栗县击秦军的决策则是项梁根据秦军至栗的新情况而作出的,此其一。其二,项羽在项梁起义军中的地位非朱鸡石、余樊君所能比,项羽所率之军如果不是项梁起义军之主力,也要比朱鸡石等所率之军强大得多。因此,如果说配合行动的话,应该是朱鸡石等配合项羽行动而不是相反。要之,项羽从胡陵经由丰邑、虞县、蒙县等地向西进攻襄邑的可能性无法排除,既然如此,则将其攻打的襄城定在“胡陵南,彭城西,栗县东的范围内”,理由不够充分。
第三,王文根据有关地名的变化认为,襄、相同音,义相近,古代两字可以互训、互换通用,襄城可称相城,相城可称襄城,从而认为项羽攻打的襄城当为相城,即秦泗水郡相县,这也是欠妥的。王文说襄、相在古代可以互训通用无疑正确,但若据此认为当时的相县可称襄城则似难成立。在古代地名中有同音、同义字互换的情况,但这种互换的情况在《史记》中是否存在,还需认真考究。王文列举了《史记》中地名同音字互用(或记错) 的例子,即陈与城、雍与雝、郕与城、城与成、郯与郏来作证明,这值得斟酌。先看“陈与城”的例子。王文认为,《史记·项羽本纪》中项梁“引兵攻亢父……救东阿,大破秦军于东阿”和“项梁使沛公及项羽别攻城阳,屠之。西破秦军濮阳东,秦兵收入濮阳。沛公、项羽乃攻定陶。定陶未下,去,西略地至雝丘,大破秦军,斩李由”的记载,正与《史记·曹相国世家》所云“北救阿,击章邯军,陷陈,追至濮阳。攻定陶,取临济。南救雍丘,击李由军,破之,杀李由,虏秦侯一人”相吻合,“其所攻陷的陈并非陈县,而是城阳之城”,此说不确。其实,《曹相国世家》上文所载“陷陈”既非陷陈县,亦非陷“城阳之城”,而是“陷阵”,“陈”为“阵”之古字,“陷陈”即冲锋陷阵之意,下文有曹参“从南攻犨,与南阳守齮战阳城郭东,陷陈,取宛”[1]2023可证。可见“陈与城”的例证不能成立。再看王文所举雍与雝、郕与城、城与成、郯与郏诸例。不难看出,这些例子全都是形近字(字音有同也有不同),而襄与相两字虽同音,但字形却毫无相同或相近之处。因此可见,以上诸地名例子并不能作为襄城和相县因襄、相同音、义而互用之证据。
由上所述可知,王文对项羽所攻打襄城就是秦泗水郡相县的论证是难成立的。同时我们看到,将项羽所攻之襄城视为相县,还有以下困难。一是《史记·高祖本纪》载:秦将“将兵北定楚地,屠相,至砀。东阳宁君、沛公引兵西,与战萧西,不利。还收兵聚留,引兵攻砀,三日乃取砀。……攻下邑,拔之。还军丰。闻项梁在薛,从骑百馀往见之。……从项梁月馀,项羽已拔襄城还”[1]352-354。文中前面已有“相”即相县,如果后面项羽所拔者亦为相县,何以却换成了“襄城”?行文数语之间,同一地点而地名前后不一致如此,很值得怀疑。二是据上所载,在项羽攻打襄城并制造坑杀事件之前,秦军已屠相。据《汉书·高帝纪》所载可知,秦军屠相在秦二世二年正月,而项羽攻下秦军坚守的襄城并屠之,约在是年五月。如果襄城即是相县,则五个月之中,敌对双方都曾在同一城内大肆屠杀,其可能性较小。因为屠城后城内人力和物力匮乏,又不得人心,先行屠城的一方,短时间内是很难再在此城坚守的。以上两点也从某些侧面证明,项羽所攻打的襄城不可能是相县。
项羽所攻打并实施屠城的襄城既然不可能是秦汉颍川郡(唐许州) 襄城,也不可能是秦泗水郡相县,那么很明显,此襄城只能是前已述及的秦砀郡襄邑县(今河南睢县)。孟祥才著《中国农民战争史》云:项梁“命令项羽率一支起义军攻襄城(今河南睢县)”[3]78。白寿彝总主编《中国通史》也说:“项梁又使项羽别攻襄城(今河南睢县)”[4]260。以上两书对襄城的注释,应是基于此襄城即秦襄邑县的正确判断。对于秦楚之际的这个襄邑县,《史记》曾有明确记载。如《史记·灌婴列传》载婴“击楚军后,绝其饷道,起阳武至襄邑”[1]2668;《靳歙列传》也载歙“击绝楚粮道,起荥阳至襄邑”[1]2710。综合有关史料记载和史实来看,项羽当时应该就是从胡陵出发,经丰、虞、蒙或附近等地向西,攻克襄邑并制造了坑杀事件的。项羽攻打襄邑是项梁西进击秦行动的重要组成部分,完全符合项梁“将引军而西”的行动方略。但由于当时项羽所率兵力尚有限,而且攻打襄邑是一场硬仗,自身消耗估计也不小,因此项羽不可能长驱深入秦军防御腹地,只能在攻克襄邑城后,返回薜县。
但为何项羽所攻打的襄邑在《史记·项羽本纪》和《高祖本纪》中都被称作襄城,未见史家学者有过任何解释,难免令人疑惑,故有必要作探讨。笔者蠡测,由于当时有襄邑又有襄城,一字之差,司马迁一时疏忽误用了“襄城”。而这种将古地名的“某邑”误作“某城”的疏忽,似也常见,究其原因,显然与城、邑义相通有关。下面试看《史》《汉》所载“某邑”被误认作“某城”的几个例子。《史记·六国年表》:赵惠文王十八年,“秦拔我石城”[1]741。《史记·廉颇列传》载是年“秦伐赵,拔石城”。《索隐》:“刘氏云盖谓石邑。”[1]2442石邑本为县,王先谦也认为《廉颇列传》上文的石城即是石邑[5]182。但是,《史记·周本纪》却云:此年秦“取赵蔺、离石”[1]164。《云梦秦简编年纪》亦明载:是年秦“攻离石”[6]4。可见《史记》上文的石城,其实是指离石而非石邑,司马贞和王先谦等都注错了。《汉书·地理志》载右扶风郡有栒邑县,应劭以为即郇侯之郇。臣瓒驳之曰:荀当在晋之境内,不得在扶风界也。今河东有荀城,古荀国。颜师古认为“瓒说是也。此栒读与荀同,自别邑耳”[7]1548。臣瓒、师古所说得正确。然应劭乃撰有《汉官仪》《风俗通义》等著作的学术名家,何以犯此失误?大概“某邑”称“某城”义相通,在思维上栒邑可称为栒(与郇、荀同音形似) 城,以致应劭认为栒邑即荀城。又《汉书·地理志》雁门郡有马邑县,代郡有马城县。《水经注·漯水》:“干宝《搜神记》曰:昔秦人筑城于武州塞内以备胡,城将成而崩者数矣。有马驰走一地,周旋反覆,父老异之,因依以筑城,城乃不崩,遂名之为马邑。或以为代之马城也,诸记纷竞,未识所是。”[8]192据此可知,不少人将雁门郡的马邑误作代郡的马城,这也是古代地名“某邑”被误认为“某城”的典型例子。据上所述可知,古代地名“某邑”被误认为“某城”的犯错现象是存在甚至是常见的,司马迁也可能犯同样的错误,以致记述项羽攻屠的襄邑为“襄城”。而后世注家学者对此多有不察,纷纷以颍川(或许州) 襄城注之,这倒是史迁所无法料及的。
[1] | [汉]司马迁.史记[M].北京:中华书局, 1982. |
[2] | 王健. 《史记·项羽本纪》襄城地望纠误与考实[J]. 安徽史学, 2009(5): 89–93. |
[3] | 孟祥才. 中国农民战争史(一)·秦汉卷[M]. 武汉: 湖北人民出版社, 1989. |
[4] | 白寿彝. 中国通史·第四卷·上册[M]. 上海: 上海人民出版社, 2004. |
[5] | 周振鹤. 汉书地理志汇释[M]. 合肥: 安徽教育出版社, 2006. |
[6] | 睡虎地秦墓竹简整理小组. 睡虎地秦墓竹简[M]. 北京: 文物出版社, 1978. |
[7] | [汉]班固.汉书[M].北京:中华书局, 1962. |
[8] | [北魏]郦道元.水经注[M].谭属春, 点校.长沙:岳麓书社, 1995. |