在 Linux 中如何区分目录及其内容?

在 Linux 中如何区分目录及其内容?

假设你有这个目录树

parent
   -----child1
           -----file0 
           -----grandchild1
                      -----file1
                      -----file2 
           -----grandchild2
                      -----file3
   -----child2

现在我需要学习如何做两件事

  1. 将文件夹 child1 复制到 child2 中,这样就会有 parent/child2/child1/grancdhild1/file1
  2. 将文件夹 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 世界中有不同的实现,但-rswitch 应该可以工作。请查看文档以了解详细信息。还可以查看-aGNU 中的 switch cp

答案3

要复制 child1,您需要执行以下操作cp child1 child2/child1。要复制 child1 的内容,您需要执行以下操作cp child1/* child2/*

相关内容