2014-12-02 79 views
0

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

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

如何我可以这样做吗?

+0

我想你想'sed -i'(就地编辑)? – Carpetsmoker 2014-12-02 11:04:01

+0

不是真的,我只是想用新文件替换整个文件,而不是替换文件中的字符串。 – 2014-12-02 11:13:17

+0

你想重命名这些吗? – 2014-12-02 11:13:44

回答

1

您可以使用find,只是复制在上面正是如此新的文件...

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

(假设你运行该根)cp将保持在目标文件的所有权和权限(一被覆盖)。如果你想保留源文件的权限,那么你可以使用cp -p

+0

它将用一个 – Hackaholic 2014-12-02 11:34:27

+0

来代替它们全部,谢谢,这就是我一直在寻找的。如何恢复相同的用户和许可权,以便在更换前最初拥有的用户和许可权? – 2014-12-02 13:37:39

相关问题