最近在做项目的时候遇到过一个问题:当copy一个工程模块时发现里面的目录文件有重复定义的情况。
最后查看源文件目录发现是存在软连接造成的。
出现这种情况的原因是:当直接copy文件目录时遇到软连接会把目标文件或者目录copy过去。
解决方法:在linux shell里面使用cp时加上-d选项
touch 11.txt
ln -s 11.txt 22.txt
cp 22.txt 33.txt
cp -d 22.txt 44.txt
cp -p 22.txt 55.txt
cp -p 44.txt 66.txt
看以下执行以上命令的结果:
备注:-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性; (属性包括文件IO属性和创建的时间等)