最近在做項目的時候遇到過一個問題:當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屬性和創建的時間等)