Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sed命令更改文件权限linux_Linux_Shell_Unix - Fatal编程技术网

sed命令更改文件权限linux

sed命令更改文件权限linux,linux,shell,unix,Linux,Shell,Unix,我试图在脚本中使用以下命令替换文件中的字符串:- sed -i "find replace" file_name 但在此之后,文件权限将发生更改 请帮助在某些linux版本中,这似乎是一个问题。我搜索了几个相关的问题,但没有得到答案。搜索特定的linux版本 或者,您可以将内容复制到另一个临时文件,在临时文件中进行搜索和替换,然后将数据放回文件名 cp file_name tmp_file_name sed "find replace" tmp_file_name> file_name

我试图在脚本中使用以下命令替换文件中的字符串:-

sed -i "find replace" file_name
但在此之后,文件权限将发生更改


请帮助

在某些
linux
版本中,这似乎是一个问题。我搜索了几个相关的问题,但没有得到答案。搜索特定的
linux
版本

或者,您可以将内容复制到另一个临时文件,在临时文件中进行搜索和替换,然后将数据放回文件名

cp file_name tmp_file_name
sed "find replace" tmp_file_name> file_name  
以下是我找到的没有答案的链接


权限保留在我的Fedora系统上。在任何情况下,您都可以告诉
sed
保留旧文件。然后,您可以通过以下方式复制权限:

sed -i.old "find replace" file_name
chmod --reference file_name.old file_name
rm file_name.old
  • 使用
    sed-i
  • 权限被随机更改为
    --x--x

  • 解决方案:将
    sleep 1
    放在
    sed
    命令之后:)