ChatGPT解决这个技术问题 Extra ChatGPT

Rsync 复制目录内容但不复制目录本身

我正在尝试同步具有不同名称的文件夹的两个内容:

rsync -av ~/foo user@remote.com:/var/www/bar

我想将 foo 的内容复制到远程主机上的 bar,而不是目录 foo 本身。我尝试过类似 foo/* 的方法,但 rsync 不支持。

rsync 总是创建

/var/www/bar/foo

N
NiloCK

rsync 将带有 no 斜杠的目录解释为 copy this directory,将 带有 斜杠的目录解释为 copy the contents of this directory

试试rsync -av ~/foo/ user@remote.com:/var/www/bar/


mvcp 相比,这种行为很奇怪。
使尾部斜杠仅与此特定命令相关似乎很奇怪且不一致。奇怪为什么它没有被改变。
如果有人也想知道为什么这样有效:它是目录名后面的 /
我还发现需要 -a 选项很奇怪。如果我不使用'-a',那么我会收到一个错误,跳过目录并且没有任何反应。阅读手册页,我不会得出这样的结论。似乎基于文档,它应该在没有 -a 选项的情况下工作,而 -v 选项仅用于冗长,因此与实际复制工作无关。诡异的。不过感谢您的回答。
我只是在猜测,但老实说,* 的工作方式可能很奇怪。 * 扩展,因此如果您在一个目录中有许多文件,您的命令 cp src/* dest 可能会扩展为一个庞大的命令。同样,所有的猜测,但也许 rsync 出于这个原因离开了它
M
Marcelo Guedes

这很简单,

rsync /var/www/ /home/var - 复制 /var/www/ 的内容,但不复制 www 文件夹本身。

rsync /var/www /home/var - 复制文件夹 www 及其所有内容。


O
Olivier

不仅与 rsync 相关,而且当您在寻找有关如何使用 GNU/Linux 命令的示例时,您可以使用显示显式示例的“eg”。例如,可在此处获得,并附有如何安装的说明:https://github.com/srsudar/eg

eg rsync 的结果如下

# rsync


copy the folder source_dir and its content into destination_dir

    rsync -av source_dir destination_dir


copy the contents of source_dir (trailing slash) into destination_dir

    rsync -av source_dir/ destination_dir

D
Dan612

导航到您要复制的目录,因此:

cd ~/foo 

运行这个:

rsync -avz . user@remote.com:/var/www/bar

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅