我正在尝试在脚本中使用此命令替换文件中的字符串: -
sed -i "find replace" file_name
但是文件权限在此之后会发生变化。
请帮忙
答案 0 :(得分:1)
权限保留在我的Fedora系统上。在任何情况下,您都可以告诉sed
保留旧文件。然后,您可以将权限复制到:
sed -i.old "find replace" file_name
chmod --reference file_name.old file_name
rm file_name.old
答案 1 :(得分:0)
在某些linux
版本中看起来是个问题。我搜索了几个相关的问题,但没有得到答案。搜索您的特定linux
版本。
作为替代方案,您可以将内容复制到另一个临时文件,在temp_file中进行搜索和替换,然后将数据放回到file_name。
cp file_name tmp_file_name
sed "find replace" tmp_file_name> file_name
以下是我发现的链接,显示无法解决此问题。
答案 2 :(得分:0)
sed -i
在ubuntu 16.04(无广告)中复制权限随机更改为---x-----x
解决方案:将sleep 1
放在sed
命令之后:)