cp'yi sarkan sembollere kopyalamaya zorla


15

cpSarkan bir sembolik bağlamaya zorlamanın herhangi bir yolu var mı (Bash 4.2.5, Ubuntu 12.04)?

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

cp -f bu durumda iktidarsız görünüyor ve aynı mesajla sonuçlanıyor.


Onun cp -fyerine kullanmayı denedin mi?
Rohith Madhavan

@RohithMadhavan yep; aynı mesaj (Soruyu yeni güncelledim)
Marcus Junius Brutus

Yanıtlar:


21

Make cpkopyalamadan önce hedef dosyasını kaldırın:

$ 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

Gönderen man cp:

--remove-destination
      remove  each existing destination file before attempting to open
      it (contrast with --force)

2

Gerçek symlink'in unlink theSymLinknerede theSymLinkolduğunu kullanın , ardından tekrar deneyin


3
Bu işe yarayacak, ancak unlink daha yaygın olarak kullanılanla (ve dolayısıyla karşılaştırıldığında hiçbir avantajı) aynı etkiye sahiprm . Özellikle, örneğin rm foo, sembolik bir bağlantı değil, normal unlink foobir dosya fooolsa bile bir dosyayı siler . Kullanma unlinkyerine rm(veya mv --remove-destination ...) yok değil kazara veri kaybına karşı koruma.
Eliah Kagan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.