rsync exclui um único arquivo da pasta raiz

2

Eu quero rsync de uma pasta, que contanins index.php (que precisa ser excluída), e muitos outros diretórios contém index.php também. Eu criei um arquivo de exclusão e adicionei index.php lá. mas todos os arquivos index.php desapareceram. Existe algum método adequado para evitar que o único arquivo seja sincronizado?

    
por Rajesh Rajendran 17.11.2014 / 09:56

2 respostas

6

O rsync usa diretórios relativos à pasta raiz do rsync. Você deve conseguir isso usando algo como

rsync -aAX ./ ../target --exclude=/index.php

O " / " indicará o diretório raiz.

    
por psiphi75 17.11.2014 / 10:14
2

O filtro --exclude funciona assim:

  • Se o padrão não começar com uma barra, ele corresponderá ao final do caminho, em qualquer lugar da árvore.

    --exclude myfile.txt corresponde a qualquer arquivo chamado myfile.txt em qualquer diretório .

    --exclude logs/myfile.txt corresponde myfile.txt dentro qualquer diretório chamado logs .

  • Se o padrão começar com uma barra, ele será ancorado a raiz dos arquivos transferidos .

    Para determinar qual é a raiz dos arquivos transferidos, remova tudo após a última barra no caminho source .

    Por exemplo, no seguinte comando rsync, o caminho de origem é /srv/files/something e, portanto, a raiz da transferência é /srv/files/ .

    rsync -a /srv/files/something host:/backup/files/
    

    Portanto, para excluir o arquivo de origem /srv/files/logs/myfile.txt , use --exclude /logs/myfile.txt , em que essa barra no início do padrão de exclusão se refere à raiz da transferência, que está com raiz em /srv/files/ (na origem).

por thomasrutter 02.11.2017 / 04:19