我正在尝试编写一个将覆盖现有目录的 Bash 脚本。我有一个目录 foo/
我正在尝试用它覆盖 bar/
。但是当我这样做时:
cp -Rf foo/ bar/
创建一个新的 bar/foo/
目录。我不想要那个。 foo/
中有两个文件; a
和 b
。 bar/
中也有同名的文件。我想要 foo/a
和 foo/b
替换 bar/a
和 bar/b
。
原文由 saketrp 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试编写一个将覆盖现有目录的 Bash 脚本。我有一个目录 foo/
我正在尝试用它覆盖 bar/
。但是当我这样做时:
cp -Rf foo/ bar/
创建一个新的 bar/foo/
目录。我不想要那个。 foo/
中有两个文件; a
和 b
。 bar/
中也有同名的文件。我想要 foo/a
和 foo/b
替换 bar/a
和 bar/b
。
原文由 saketrp 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答795 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
您可以使用
-T
中的cp
选项来执行此操作。请参阅
cp
的手册页。因此,根据您的示例,以下是文件结构。
当您将
-v
用于 Verbose 时,您可以看到明显的区别。当您只使用
-R
选项时。当您使用选项
-T
时,它会覆盖内容, 将目标视为普通文件而不是目录。这应该可以解决您的问题。