如何使用`rsync -R`和多个子目录或安装-D和多个文件?

如何使用`rsync -R`和多个子目录或安装-D和多个文件?

是否可以将rsync多个文件从源目录复制到具有多个不存在的子目录的目标目录?或者install -D将多个文件使用到不存在的目录?

我还查看了cp --parents但使用了源目录的名称。是否cp可以选择一个不存在的目标目录,并在目标目录创建后将所有文件复制到该目录?

我有这个问题:仅用一个命令将文件复制到不存在的目录(Linux) 合并:如何在复制文件的同时创建目标目录?

但是复制一个文件的解决方案,我看的是:

cp /etc/*.conf ~/mytest/ 

其中 mytest 不存在并且/etc/*.conf是多个文件。是否可以使用cp并且仅使用一个命令更好?

答案1

尝试使用rsync命令:

rsync -av /etc/*.conf ~/mytest

一般来说你可以使用

rsync -av In/*conf Out/NewDir

之前的情况是:

In
├── d1.conf
├── d2.conf
├── d3.txt
├── Sub_In_1
└── Sub_In_2.conf
    └── SubIn2.Files

Out
└── Out_OldFiles

命令之后将是

Out
├── NewDir
│   ├── d1.conf
│   ├── d2.conf
│   └── Sub_In_2.conf
│       └── SubIn2.Files
└── Out_OldFiles

在这种情况下,您不仅选择常用文件*.conf,甚至还选择目录Sub_In_2.conf。您将把所有选择(文件和目录)复制到NewDir该目录下新创建的目录中Out

该选项-a甚至包括 -r 选项(递归到目录)

  -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

笔记

  • 递归选项rsync-r(并不是-R)。
  • -r 和 -R中cp对应相同的选项。
  • 该选项-v不是必需的,它仅提供一些更多信息。
  • rsync甚至可以在用于host1源主机和host2目标主机的两台不同计算机之间使用。

最后一个命令是

rsync  -av host1:InputDir host2:OutputDir/NewDirThatDidNotExists

相关内容