本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。
如需学习视频,请复制以下信息到手机浏览器或电脑浏览器上:
zcwyou.com
本文主要讲解如何处理cp命令复制文件时不能覆盖旧文件的问题。
Linux cp命令复制时不能覆盖旧文件的处理方法
2. 问题重现
问题分析
假设目标文件名为zcwyou.txt,源文件名为zcwyou2.txt
查看目标文件zcwyou.txt的内容
catzcwyou.txt
输出内容为:
1
查看源文件zcwyou2.txt的内容
catzcwyou2.txt
输出内容为:
1
2
很明显,这2个文件的内容并不一样。
试试把zcwyou.txt复制覆盖zcwyou2.txt
cpzcwyou.txtzcwyou2.txt
提示是否要覆盖,我输入yes:
cp:是否覆盖"zcwyou2.txt"?yes
验证结果:
catzcwyou2.txt
输出结果:
1
目标文件内容没有变化,表示没有复制成功。
试试添加选项-f,表示强制执行。
[root@localhost~]#cp-fzcwyou.txtzcwyou2.txt
同样被提示以下信息:
cp:是否覆盖"zcwyou2.txt"?
结果跟上一次是一样的。复制覆盖失败。
3. 原因分析查看用户变量环境定义配置文件.bashrc
发现有一行这样的定义:
aliascp='cp-i'
选项解释:
-i,--interactive
表示覆盖前提供交互。
4. 覆盖失败的解决方法
覆盖失败的解决方法
4.1 取消别名定义修改.bashrc文件
把alias cp='cp -i'删除或者注释掉。
重新导入环境变量,才能立即生效。
source.bashrc
再试试复制覆盖。
cp-fzcwyou.txtzcwyou2.txt
/bin/cp-fzcwyou.txtzcwyou2.txt
\cp-fzcwyou.txtzcwyou2.txt
查看现有文件的内容
catzcwyou2.txt
输出结果:
1
2
文件内容更新。
6. 结论非常简单且经常用到的功能,但是还是值得研究一下。如果你有更好的方法,请留言。
如果喜欢本文,欢迎转发。本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:https://www.linuxrumen.com/cyml/1967.html
,