Bir arkadaşım şunu yapar:
perl -pi.bak -e 's/foo/bar/' somefile
"somefile" aslında bir sembolik bağlantı olduğunda, perl sadece dokümanların ne yapacağını söyler:
Bunu, giriş dosyasını yeniden adlandırarak, çıktı dosyasını orijinal adıyla açıp print () deyimleri için varsayılan olarak bu çıktı dosyasını seçerek yapar. Uzantı, sağlanmışsa, yedek kopya oluşturmak için eski dosyanın adını değiştirmek için kullanılır [...]
Bu da değişmeyen gerçek dosyayı işaret eden yeni bir simge "somefile.bak" ve değişikliklerle birlikte yeni, değiştirilmiş normal dosya "somefile" ile sonuçlanır.
Birçok durumda, sembolik bağlantıyı izlemek istenen davranış olacaktır (.bak dosyasının doğru konumunu belirsiz bıraksa bile). Bunu bir sarmalayıcıdaki sembolik bağları test etmekten ve kasayı uygun şekilde işlemekten başka basit bir yol var mı?
( sed
aynı şeyi, değerinde olan için yapar.)
-p -i
senaryonuzda yeniden uygulanmasından korkuyorum .