今天探讨一个重要的技术细节:在Solaris系统中,使用cp命令时,如果源路径包含符号链接(symbolic link),该命令会自动解析链接并复制指向的真实文件。简单来说,它会拷贝链接所指向的实际内容,而非保留链接本身。
这在实践应用中常常成为一个陷阱——你原本只想复制一个快捷方式,结果却将整个文件都搬移过来,文件结构也随之发生改变。
在Linux环境下,解决方案很简单:只需添加-d参数,cp命令即可保留符号链接。然而,Solaris系统并不支持该参数,这确实令人困扰。
经过多次测试,我发现tar命令能够完美规避这一问题。关键在于,tar在打包时默认保持符号链接的原始状态,不进行解析。因此,通过tar打包后再解包,符号链接便能原封不动地保留下来。这一技巧在跨平台文件迁移时尤为实用。
