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

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

问题描述:

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

cp -f [oringinal file] [new file] 

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

+1

我不能得到这个过程。我错过了什么或需要结束它吗? –

+0

你在写什么命令?你不需要方括号。 –

+0

作为一个便笺,这与sudo – hanzo2001

使用这些命令:

mv file1 file2 

如果file2中不存在,那么文件1被重命名文件2。如果file2存在,其内容将被替换为file1的内容。

mv -i file1 file2 

像然而如上所述,由于指定的"-i"(交互)选项时,如果file2存在,用户被之前它与文件1的内容覆盖提示。

mv file1 file2 file3 dir1 

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

mv dir1 dir2 

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

+1

保留原始文件的模式和所有权这不完全是OP想要的 - 它移动/重命名文件,而不是复制/覆盖它们... – Christian

+0

HI @Christian thanks for你的评论。你能否详细阐述一下?我想了解为什么重命名文件与替换文件不一样。例如,如果我想用file2“替换”file1,为什么我不能这样做:mv file2 file1?如果首先删除file1,此命令是否会被替换? – user1747935

+0

重命名文件意味着它不会存在于原始位置 - 在我看来,OP想要的是覆盖文件而没有任何此类副作用。 – Christian

如果你正试图只复制文件的内容尝试

cat /first/file/same_name > /second/file/same_name 

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