用bash中的另一个文件替换整个文件

时间:2012-08-30 14:10:44

标签: batch-file replace directory

我已经学会了如何使用bash脚本替换一行,但我想学习如何用同名的另一个文件夹中的另一个文件替换整个文件。这可能吗??

4 个答案:

答案 0 :(得分:23)

cp -f [oringinal file] [new file]

复制原始文件并覆盖目标文件(因此-f代表"强制")。

答案 1 :(得分:21)

如果您尝试仅复制文件内容,请尝试

import os
os.mkdir('test',0o550)

这将使用第一个文件中的内容覆盖第二个文件的所有内容。但是,您的所有者,组和第二个文件的权限将保持不变。

答案 2 :(得分:1)

今天我需要一些相同的解决方案,唯一的变化是我需要用较新的版本替换许多用户目录中的php文件的旧版本。我要去这里,将匹配与其他堆栈的答案混合在一起并解决我的问题。我在查找命令中使用了@joseph代码。

我在这里分享我的小代码,希望对您有所帮助。

for file in $(find /home/*/ -type f -name 'timthumb.php');
do
    cat /home/timthumb.php > $file;
done

答案 3 :(得分:0)

使用以下命令:

mv file1 file2

如果file2不存在,则将file1重命名为file2。如果file2存在,则其内容将替换为file1的内容。

mv -i file1 file2

如上所述,由于指定了"-i"(交互式)选项,如果存在file2,则会在用file1的内容覆盖之前提示用户。

mv file1 file2 file3 dir1

文件file1,file2,file3被移动到目录dir1。 dir1必须存在,否则mv将退出并显示错误。

mv dir1 dir2

如果dir2不存在,则dir1重命名为dir2。如果dir2存在,则在目录dir2中创建目录dir1。