cp: evita erros quando a origem e o destino são os mesmos

2

Você pode dizer ao cp (GNU coreutils) para evitar relatar um erro em:

$ echo 1 > foo
$ cp foo foo

Atualmente, isso informa:

cp: 'foo' and 'foo' are the same file

Isso é muito sensato, mas nem sempre é necessariamente um erro. Conceitualmente, se você estiver copiando arquivos de $source para $dest , se você já estiver no diretório $dest , então, essencialmente, a cópia já será feita por construção; então, dependendo do contexto , isso não deve necessariamente ser relatado como um erro. Não consigo encontrar nada na página de manual para isso. A opção --update não funciona, embora pareça que poderia.

Obviamente, eu posso contornar isso é muitas maneiras, mas eu queria saber se o CP poderia fazer isso de cara.

    
por Zorawar 11.06.2017 / 00:26

1 resposta

0

Isto não é possível com os coreutils do GNU (a partir do coreutils 8.27). A documentação não menciona isso, e o código-fonte não mostra nenhuma forma não documentada. O teste para o mesmo arquivo não permite apenas ao criar links físicos ou, em alguns casos, onde os arquivos são links simbólicos para o mesmo destino.

O Rsync permite isso, então uma solução simples seria usar rsync em vez de cp .

    
por 11.06.2017 / 01:03

Tags