【问题标题】:replace mutiple files across various subfolders with a new version file in unix用unix中的新版本文件替换各个子文件夹中的多个文件
【发布时间】:2014-12-02 11:02:36
【问题描述】:

我可以找到几个如何使用 grep 或 sed 替换多个文件中的字符串的示例,但我想用新版本替换旧版本的文件。

例如,我在 10 个不同的子文件夹中有一个类文件 new1.class.php,我想用新的 new1.class.php 替换所有这些 new1.class.php,

我该怎么做?

【问题讨论】:

  • 我想你想要sed -i(用于就地编辑)?
  • 不是真的,我只是想用新文件替换整个文件,而不是替换文件中的字符串。
  • 你想重命名那些吗?
  • new new1.class.php 是什么意思??

标签: php shell unix sed grep


【解决方案1】:

您可以使用find,然后将新文件复制到顶部因此...

find . -name new1.class.php -exec cp /some/place/new1.class.php {} \;

(假设您以 root 身份运行)cp 将保留目标文件(被覆盖的文件)的所有权和权限。如果要保留源文件的权限,可以使用cp -p

【讨论】:

  • 它将全部替换为一个
  • 谢谢,这就是我一直在寻找的。在替换之前将相同的用户和权限恢复到原来的状态如何?
猜你喜欢
  • 1970-01-01
  • 2021-06-01
  • 2022-01-25
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
  • 2017-02-25
  • 1970-01-01
相关资源
最近更新 更多