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
这意味着源目录本身被复制到目标中,但我希望复制其内容(就像目标目录不存在时一样)
答案1
-T
解决办法是根据添加男人
-T, --no-target-directory treat DEST as a normal file
cp -rsfT /path/of/source /path/of/target
如果目标目录存在,它将复制其中的符号链接。这样做的好处是,如果目标中有其他文件,它们将保持不变。