我正在尝试通过 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/