如何在使用scp
命令时忽略某些文件?我在 Linux 服务器上有以下文件结构:
一切>
- 需要这个
- 也需要这个
- 不需要这个
我想得到NeedThis
和NeedThisToo
并忽略DontNeedThis
。我不能只使用两个单独的 scps,因为实际上有几百个文件。
我既不能移动也不能复制任何东西(这个问题的一部分,可以看作是一个设定条件)。有谁知道我的问题的解决方案?
答案1
使用rsync
命令代替scp
可以让我们更精确地排除我们想要排除的内容。假设您想要将某个远程目录递归复制到本地目录,但想要从操作中排除某个名称:
rsync -av --exclude=DontNeedThis user@remote:/some/dir/ /some/dir
上面的命令将递归地将远程目录的内容复制/some/dir
到本地目录/some/dir
,同时避免任何命名DontNeedThis
(其中DontNeedThis
可能是一些引用的模式)。
/
请注意,源路径上的最后一个很重要。如果没有它,您将复制目录,而不是其内容。
有关可用于排除或包含事物的模式的完整说明,请参阅手册中名为“包含/排除模式规则”的部分rsync
。