我可以找到幾個如何使用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