força cp a copiar em links simbólicos pendentes

12

Existe alguma maneira de forçar o cp (Bash 4.2.5, Ubuntu 12.04) a copiar em um symlink pendente?

cp a-file path/to/danling/symlink/a-file
cp: not writing through dangling symlink 'path/to/danling/symlink/a-file'

cp -f parece ser impotente neste caso e resulta na mesma mensagem.

    
por Marcus Junius Brutus 19.11.2014 / 19:46

2 respostas

16

Faça cp remover o arquivo de destino antes de copiar:

$ ln -s /random/file f              
$ cp -f a f                  
cp: not writing through dangling symlink ‘f’
$ cp --remove-destination a f
$ diff a f && echo yes
yes

Em man cp :

--remove-destination
      remove  each existing destination file before attempting to open
      it (contrast with --force)
    
por muru 19.11.2014 / 19:53
1

Use apenas unlink theSymLink , em que theSymLink é o link simbólico real e tente novamente

    
por SwCharlie 27.04.2015 / 21:58