Symlink
當目標目錄存在時使用命令 cp -rsf 複製源目錄
On
Centos 7
,當我使用命令時:cp -rsf /path/of/source /path/of/target
當目標目錄存在時,文件將轉到
/path/of/target/source
.我怎樣才能避免這種情況?
編輯:
- 源和目標是目錄。
- 符號連結滿足我的環境需求。我需要它們成為符號連結以節省儲存空間。
例如:
mkdir /home/admin/test; mkdir /home/admin/test/1; touch /home/admin/test/1/1.txt;
mkdir /home/admin/test2; mkdir /home/admin/test2/1; touch /home/admin/test2/1/1.txt;
cp -rsf /home/admin/test/1 /home/admin/test2/1
ls /home/admin/test2/1
結果是:
drwxrwxr-x 2 admin admin 4096 Sep 16 15:57 1 -rw-rw-r-- 1 admin admin 0 Sep 16 15:56 1.txt
我想要這個結果:
lrwxrwxrwx 1 admin admin 24 Sep 16 16:03 1.txt -> /home/admin/test/1/1.txt
這意味著源目錄本身被複製到目標中,但我希望它的內容被複製(就像目標目錄不存在時一樣)
解決方法是
-T
根據man添加
-T, --no-target-directory treat DEST as a normal file
cp -rsfT /path/of/source /path/of/target
如果目標目錄存在,它會複製其中的符號連結。好處是如果目標中有其他文件,它們保持不變。