![如何简单地将一个文件夹复制到另一个文件夹中并保持其结构不变?](https://linux22.com/image/1458644/%E5%A6%82%E4%BD%95%E7%AE%80%E5%8D%95%E5%9C%B0%E5%B0%86%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E5%A4%8D%E5%88%B6%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E5%B9%B6%E4%BF%9D%E6%8C%81%E5%85%B6%E7%BB%93%E6%9E%84%E4%B8%8D%E5%8F%98%EF%BC%9F.png)
假设我有以下结构并且当前工作目录是root
:
root
- sub1
file1.xml
file2.xml
- sub2
file3.css
- _target
{is an empty folder}
run.bat
我想在保留结构的情况下xcopy
进行复制。因此结果是:sub1
_target
- _target
- sub1
file1.xml
file2.xml
然而,当我尝试添加参数(即/I
、/S
、的任意组合/E
)时,xcopy
我总是得到这样的结果:
- _target
file1.xml
file2.xml
实现上述目标(及其内容)的正确参数是sub1
什么_target
?
我尝试\
在源文件夹和目标文件夹的末尾添加以模仿 unixcp
的神奇行为,但这也无济于事。
请注意,我正在寻找一种不会在参数中不必要地重复文件夹名称的解决方案(这就是我标题中“简单”的意思),我知道这xcopy sub1 _target\sub1 /I
有效!
作为一个最后一招答案robocopy
可能是可以接受的,但我真的更希望xcopy
不要重复参数。
答案1
问题是 /S 和 /E 互相矛盾。要么使用 /S(全部,空文件夹除外),要么使用 /E(全部,包括空文件夹)。
我敢打赌你想使用/E,所以你的xcopy将是:
xcopy sub1 _target\sub1 /I /E