Заставить cp копировать на висячие символические ссылки
Есть ли способ заставить cp
(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
кажется бессильным в этом случае и приводит к тому же сообщению.
2 ответа
Решение
Делать cp
удалить целевой файл перед копированием:
$ 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
От man cp
:
--remove-destination
remove each existing destination file before attempting to open
it (contrast with --force)
Просто используйте unlink theSymLink
где theSymLink
это фактическая ссылка, попробуйте еще раз