[sisyphus] perl -pi & symlinks

Ivan Zakharyaschev =?iso-8859-1?q?vanyaz_=CE=C1_mccme=2Eru?=
Чт Мар 22 22:51:14 MSK 2001


	Hello!

Довольно часто для замены текста по образцу в файле используется perl -pi.
Обнаружил неожиданную (для меня) особенность этой команды при работе с
символическими ссылками -- вместо ссылки появляется измененная копия. Вот
демонстрация:

$ MAIN=main LINK=link; touch $MAIN; ln -sf $MAIN $LINK; \
echo a > $LINK; cat $MAIN; ls -l; \
perl -pi -e 's/a/b/' $LINK; cat $MAIN; cat $LINK; ls -l
a
итого 4
lrwxrwxrwx    1 ivan     ivan            4 Мар 22 22:44 link -> main
-rw-r--r--    1 ivan     ivan            2 Мар 22 22:44 main
a
b
итого 8
-rw-r--r--    1 ivan     ivan            2 Мар 22 22:44 link
-rw-r--r--    1 ivan     ivan            2 Мар 22 22:44 main
$

После недолгого чтения документации упоминаний этой особенности не
обнаружил. Незнание этого факта может повредить, например, при сборке
пакета.

Best regards,
Ivan.





Подробная информация о списке рассылки Sisyphus