2016-08-08 186 views
0

我试图rsync我的网站到服务器,同时保留一些符号链接。我有一些里德文件和本应该做的伎俩rsync符号链接到php文件

rsync -vra --links 

除了一个问题:它不会复制那些不针对某个文件夹的符号链接,而是一个文件(在这种情况下.PHP,但我不要认为这很重要)。它基本上打破了。

此链接:

htdocs/content/uploads -> /data/sharedstorage/uploads 

这个环节不会被跳过

htdocs/content/config.php -> /data/sharedstorage/config.php 

有谁知道我怎么能解决这个问题?

P.S:我想保留符号链接,所以我不想复制原始符号链接链接到的文件。

+0

为什么你认为它被跳过是因为它是符号链接?你能给完整的rsync命令吗? –

+0

rsync -vrla --delete --update --dry-run --exclude = .git --exclude = htdocs/.htaccess --exclude = .git * --exclude = *。old --exclude =。*。旧--exclude = *。dist --exclude =。*。dist --exclude = www --exclude =。* --exclude = vendor/bin --exclude = vendor/cube --exclude = vendor/johnpbloch - exclude = vendor/koodimonni --exclude = vendor/koodimonni-language --exclude = *。json --exclude = Gruntfile.js --exclude = vvv * --exclude = wp-cli.yml --exclude = *。lock --exclude = *。md --exclude = node_modules --exclude = htdocs/content/themes/starter/tests --exclude = htdocs/content/themes/starter/*。json --exclude = htdocs/content/themes /首先/ *。txt –

+0

--exclude = htdocs/content/themes/starter/*。md --exclude = htdocs/content/themes/starter/resources/assets/bower --exclude = htdocs/content/themes/starter /资源/资产/ scss --exclude = htdocs/content/themes/starter/resources/assets/js/*/--exclude = htdocs/content/themes/starter/resources/assets/css/**/*。map。/user @ server: 是完整的命令。 -l应该和--links一样(两者都试过)如果我检查正确,它不会排除这些文件。 –

回答

0

看来它会将它们作为符号链接传输。只有rsync提供的反馈才能识别符号链接。可能是因为他们有一个扩展。因此它会将其视为文件...

所以这个问题毕竟不是一个真正的问题。更像是rsync中的详细功能中的“bug”

+0

Rsync不关心你所谓的“扩展”。文件名是一个文件名,无论它是否有点或回车符或其中任何其他旧字符[*](http://serverfault.com/a/150744)。 Rsync不检测文件名中的任何模式的文件类型。它[询问操作系统的这个信息](https://www.freebsd.org/cgi/man.cgi?query=fstat&sektion=2)。 – ghoti

+0

那么为什么它不被识别,但它被正确传输呢? –

+0

我无法复制您的结果。它在我创建的测试用例中完全符合我的预期。 – ghoti