ssh - 通过 ssh 进行递归 rsync,仅包含一个文件扩展名

标签 ssh rsync

我正在尝试通过 ssh 将文件从服务器同步到我的计算机。文件位于各个子目录中,但我只想保留与特定模式匹配的文件(IE blah.txt)。我已经在 stackoverflow 上进行了广泛的谷歌搜索和搜索,并且我已经尝试了建议的 --include 和 --excludes 的几乎所有排列。无论我尝试什么,rsync 都会抓取所有文件。 作为我的尝试之一的示例,我使用了: rsync -avze 'ssh' --include='*blah*.txt' --exclude='*' <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="84e9fdf1f7e1f6eae5e9e1c4e9fdf7e1f6f2e1f6aae7ebe9" rel="noreferrer noopener nofollow">[email protected]</a>:/path/top/files/directory /path/to/local/directory

为了排除故障,我尝试了以下命令: rsync -avze 'ssh' --exclude='*' <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3855414d4b5d4a5659555d7855414b5d4a4e5d4a165b5755" rel="noreferrer noopener nofollow">[email protected]</a>:/path/top/files/directory /path/to/local/directory 希望它不会复制任何内容,但它仍然抓取了所有文件。

我在 OSX 上使用 rsync 版本 2.6.9。

我是否遗漏了一些明显的东西?我已经为此苦苦挣扎了很长一段时间。

最佳答案

我找到了一个解决方案,但有一个警告。这是工作命令: rsync -vre 'ssh' --prune-empty-dirs --include='*/' --include='*blah*.txt' --exclude='*' <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="afdadccaddefdccaddd9cadd81ccc0c2" rel="noreferrer noopener nofollow">[email protected]</a>:/path/to/server/files /path/to/local/files

但是!如果我直接在命令行中输入它,它就可以工作。如果我将其保存到文件 myfile.txt,然后尝试“cat myfile.txt”,它就不再起作用了!这对我来说毫无意义。

关于ssh - 通过 ssh 进行递归 rsync,仅包含一个文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30308162/

相关文章:

java - 通过 ssh jenkins 构建工件 - PHP

git - 尝试使用 ssh 推送到 Bitbucket 时出错

rsync - 如何仅同步特定的文件列表?

bash - 将 Bash 中的变量扩展为 rsync 的参数

linux - `chowning` 未知 uid/gid 文件 `rsync`(包括 --exclude-from 文件)的更好方法将被视为源文件

amazon-web-services - 通过 bitnami 在 AWS on Ghost 中使用 SSL

github - github 上的 RSA 指纹与 ssh-keygen 不匹配

python - 无法使用 Paramiko 远程执行 tcpdump

Android Runtime.getRuntime().exec 和 rsync

php - 使用php将文件从一台机器复制到另一台机器