我可以 scp 一个有子文件夹的文件夹吗?

Bla*_*man 36 ubuntu scp

我有一个文件夹,其中包含静态网站的文件,例如:

/site/index.html
/site/css/css.css
/site/js/js.js
/site/images/...
Run Code Online (Sandbox Code Playgroud)

如果我更新笔记本电脑上的某些内容,我需要一个命令将文件发送到我的 ubuntu 服务器。如果我没有,我不想在其上设置 FTP,想知道 scp 是否能够处理这个问题?

Dav*_*osh 62

该命令scp -r source user@target:dest将遍历源的所有子目录并复制它们。

但是,即使源和目标上的文件相同,它的scp行为cp也始终复制文件。[请参阅此处了解解决方法。]

由于这是一个静态网站,您很可能只进行更新,而不是重新创建整个网站,因此如果您使用rsyncssh 而不是scp. 大概是这样的

rsync -av -e ssh source user@target:dest
Run Code Online (Sandbox Code Playgroud)

...开始。如果您通过 LAN 执行此操作,我个人会使用这些选项-avW来代替rsync.

Rsync 还使您能够在源中重复删除;因此,如果您从树中删除文件,则可以rsync按上述方式运行,并包含该标志--delete,它将从目标端删除相同的文件。


Zyp*_*her 9

scp 有一个递归标志,可以做你想做的事。 scp -r /base/directory user@server:/to/location

man scp

-r      Recursively copy entire directories.  Note that scp follows symbolic
          links encountered in the tree traversal.
Run Code Online (Sandbox Code Playgroud)