[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