2012-02-21 3 views
15

Имеет ли команда cp любую опцию для перезаписи целевого файла, который является символической ссылкой?Команда cp для перезаписи целевого файла, который является символической ссылкой

Проблема заключается в следующем:

[[email protected] test]$ ls -l 
total 8 
-rw-rw-r--. 1 dthnguyen dthnguyen 5 Feb 21 09:07 a.txt 
lrwxrwxrwx. 1 dthnguyen dthnguyen 7 Feb 21 08:55 b.txt -> ./a.txt 
-rw-rw-r--. 1 dthnguyen dthnguyen 5 Feb 21 08:55 c.txt 
[[email protected] test]$ cp c.txt b.txt 

После сделать копию, a.txt имеет содержание c.txt, b.txt еще ссылки на a.txt. Ожидаемый результат: a.txt содержит старое содержимое, b.txt - это новый обычный файл с тем же содержимым, что и c.txt.

ответ

24

Сообщите cp, чтобы удалить его первым.

cp --remove-destination c.txt b.txt 
+0

это работает !!! Большое спасибо Ignacio Vazquez-Abrams –

+4

Есть ли способ сделать это для каталогов? Я попробовал его с помощью '-r', и он, похоже, не работал. – Ajedi32

+3

Я не вижу эту опцию на OS X 10.9.5. – bolinfest

Смежные вопросы