2016-08-08 131 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