我可以找到几个如何使用grep或sed替换多个文件中的字符串的示例,但是我想用新版本替换旧版本的文件。用unix中的新版本文件替换多个子文件夹中的多个文件
比如我有10个不同的子文件夹类文件new1.class.php,我想用一个新new1.class.php更换所有这些new1.class.php,
如何我可以这样做吗?
我可以找到几个如何使用grep或sed替换多个文件中的字符串的示例,但是我想用新版本替换旧版本的文件。用unix中的新版本文件替换多个子文件夹中的多个文件
比如我有10个不同的子文件夹类文件new1.class.php,我想用一个新new1.class.php更换所有这些new1.class.php,
如何我可以这样做吗?
您可以使用find
,只是复制在上面正是如此新的文件...
find . -name new1.class.php -exec cp /some/place/new1.class.php {} \;
(假设你运行该根)cp
将保持在目标文件的所有权和权限(一被覆盖)。如果你想保留源文件的权限,那么你可以使用cp -p
它将用一个 – Hackaholic 2014-12-02 11:34:27
来代替它们全部,谢谢,这就是我一直在寻找的。如何恢复相同的用户和许可权,以便在更换前最初拥有的用户和许可权? – 2014-12-02 13:37:39
我想你想'sed -i'(就地编辑)? – Carpetsmoker 2014-12-02 11:04:01
不是真的,我只是想用新文件替换整个文件,而不是替换文件中的字符串。 – 2014-12-02 11:13:17
你想重命名这些吗? – 2014-12-02 11:13:44