是否可以将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