使用 scp 复制时忽略文件

使用 scp 复制时忽略文件

如何在使用scp命令时忽略某些文件?我在 Linux 服务器上有以下文件结构:

一切>

  • 需要这个
  • 也需要这个
  • 不需要这个

我想得到NeedThisNeedThisToo并忽略DontNeedThis。我不能只使用两个单独的 scps,因为实际上有几百个文件。

我既不能移动也不能复制任何东西(这个问题的一部分,可以看作是一个设定条件)。有谁知道我的问题的解决方案?

答案1

使用rsync命令代替scp可以让我们更精确地排除我们想要排除的内容。假设您想要将某个远程目录递归复制到本地目录,但想要从操作中排除某个名称:

rsync -av --exclude=DontNeedThis user@remote:/some/dir/ /some/dir

上面的命令将递归地将远程目录的内容复制/some/dir到本地目录/some/dir,同时避免任何命名DontNeedThis(其中DontNeedThis可能是一些引用的模式)。

/请注意,源路径上的最后一个很重要。如果没有它,您将复制目录,而不是其内容。

有关可用于排除或包含事物的模式的完整说明,请参阅手册中名为“包含/排除模式规则”的部分rsync

相关内容