繁体   English   中英

rsync --exclude-from'list'文件不起作用

[英]rsync --exclude-from 'list' file not working

我正在尝试使用rsync来完成从远程服务器到本地计算机的未完成传输

rsync -a user@domain.com:~/source/ /dest/

其中/dest/是部分完成的转移的位置。 但是,由于带宽问题,我需要在没有/dest/副本的另一台机器上运行rsync到/tmp_dest/ ,然后我可以在那里将/tmp_dest//dest/

到目前为止我提出的解决方案是使用rync的--exclude-from选项,使用包含/dest/完整文件列表的文件。

命令看起来像这样

rsync -a --exclude-from 'list.txt' user@domain.com:~/source/ /tmp_dest/

在这一点上,我觉得好像我到处寻找解决方案,并尝试了我遇到的每一个变种。

这包括'list.txt'相对路径和绝对路径

相对的:

path 1/file 1
path 2/file 2

- 要么 -

绝对:

/absolute/source/path 1/file 1
/absolute/source/path 2/file 2

我已尝试上面的组合包括-明确排除该行(我已经看到人们想要+其他文件的例子)

- /absolute/source/path 1/file 1
- /absolute/source/path 2/file 2

我已经尝试将前导**/放在文件路径前面以纠正相对路径问题

**/path 1/file 1
**/path 2/file 2

我也尝试导航到包含'list'的目录并从那里执行rsync,以避免rsync查找的问题

/path/to/the/list/something1/to.exclude
/path/to/the/list/something2/to.exclude
/path/to/the/list/something3/to.exclude

毫无疑问,一无所获

我还发现'list'文件中正在使用正确的换行符。 LF (Unix)换行符。


我试图用以下命令创建'list'

find . -type f | tee list.txt

这最初创建了一个看起来像这样的文件

./yyyy-mm-dd folder 1/sub folder [foo]/file.a
./(yyyy) folder 2 {foo2}/file.b
./folder, 3/sub-folder 3/file.c

正如您所看到的,文件路径中有空格和其他字符,但从我目前的理解来看,这不应该影响。 但也许我错了,需要逃避任何具有特殊意义的角色,我可能需要帮助

然后,我在notepad ++或其他文本编辑器中执行替换./保留LF (Unix)换行符以获得所需的结果。 例如 ,如上所述,我尝试使用/absolute/path/for/source/注意前导斜杠替换./ ,或者甚至使用双通配符来匹配包含文件的任何父树结构。

我觉得我没有尝试过的唯一一件事是逃避文件名和路径中的空格,但我已经读到这应该不是问题。

也许我忽视了一些事情,任何帮助都会受到赞赏。

这是来自rsync手册页如何使用“--exclude-from”: - exclude-from = FILE从FILE读取排除模式

使用以下命令:rsync -a --exclude-from = list.txt user@domain.com:~/ source / / tmp_dest /

并且最好使用list.txt文件的完整路径名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM