假设你有这个目录树
parent
-----child1
-----file0
-----grandchild1
-----file1
-----file2
-----grandchild2
-----file3
-----child2
现在我需要学习如何做两件事
- 将文件夹 child1 复制到 child2 中,这样就会有 parent/child2/child1/grancdhild1/file1
- 将文件夹 child1 的内容复制到 child2,因此将有 parent/child2/grancdhild1/file1
注意第二个没有“child1”,在第一个中我们将一个文件夹复制到一个新文件夹中,在第二个中我们将一个文件夹的内容复制到另一个文件夹。
如果这很重要的话,假设您当前的位置是父母。
我在这里的主要挑战是复制所有内容(子目录,隐藏文件等)。
答案1
Rsync 来救援!:-)
注意“child1”参数末尾的斜杠字符(或不存在该斜杠)。这是唯一的区别。命令在 中执行parent
。
$ rsync -a child1 child2/
结果:
├── child1
│ ├── file0
│ ├── grandchild1
│ │ ├── file1
│ │ └── file2
│ └── grandchild2
│ └── file3
└── child2
└── child1
├── file0
├── grandchild1
│ ├── file1
│ └── file2
└── grandchild2
└── file3
$ rsync -a child1/ child2/
结果:
├── child1
│ ├── file0
│ ├── grandchild1
│ │ ├── file1
│ │ └── file2
│ └── grandchild2
│ └── file3
└── child2
├── file0
├── grandchild1
│ ├── file1
│ └── file2
└── grandchild2
└── file3
答案2
假设parent
是你的工作目录
要做1:cp -r child1 child2
要做2:cp -r child1/* child2
cp
在 *nix 世界中有不同的实现,但-r
switch 应该可以工作。请查看文档以了解详细信息。还可以查看-a
GNU 中的 switch cp
。
答案3
要复制 child1,您需要执行以下操作cp child1 child2/child1
。要复制 child1 的内容,您需要执行以下操作cp child1/* child2/*
。