当目标目录存在时使用命令 cp -rsf 复制源目录

当目标目录存在时使用命令 cp -rsf 复制源目录

On Centos 7,当我使用命令时:

 cp -rsf /path/of/source /path/of/target

当目标目录存在时,文件将转到/path/of/target/source.

我怎样才能避免这种情况?

编辑:

  1. 源和目标是目录。
  2. 符号链接满足我的环境需求。我需要它们成为符号链接以节省存储空间。

例如:

  1. mkdir /home/admin/test; mkdir /home/admin/test/1; touch /home/admin/test/1/1.txt;
  2. mkdir /home/admin/test2; mkdir /home/admin/test2/1; touch /home/admin/test2/1/1.txt;
  3. cp -rsf /home/admin/test/1 /home/admin/test2/1
  4. 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

如果目标目录存在,它将复制其中的符号链接。这样做的好处是,如果目标中有其他文件,它们将保持不变。

相关内容