解决 Linux cp 命令加了 -f 后依然提示覆盖的问题

cp 命令是在 Linux 上用来复制文件的命令,不管是复制单个文件,还是整个文件夹复制,都可以用 cp 命令实现。有时候我们需要用新的文件覆盖旧的文件,并且希望命令不提示 Y/N  而是直接覆盖,就可以用 -f 直接覆盖。但是今天老王遇到一个问题,cp 命令加了 -f 后依然提示覆盖,这里分享下原因和解决办法。

一、cp 命令

例如我们需要将当前文件下的 install.sh 文件复制到 /root/scripts 目录下:

cp install.sh /root/scripts/

如果我们 /root/scripts 已经有了一个 install.sh 了,那么 Linux 就会提示问我们是否覆盖“install.sh”,可以输入 y 确认覆盖,或者 n 取消覆盖。如果只有一个文件还好,但是如果有很多个文件,那么就很麻烦了。这个时候就可以使用 -f 不提示直接覆盖:

cp -f install.sh /root/scripts/

二、cp -f 之后依然提示覆盖

今天老王在用 cp 命令时,加了 -f,依然会提示是否需要覆盖,后来发现是 Linux 上别名设置的问题,输入 alias 返回如下:

alias cp='cp -i'

也就是说当你执行 cp 时,其实执行的是 cp –i。

解决办法:

方法一:修改 ~/.bashrc 文件禁用掉 cp 的 alias

即在 alias cp='cp -i' 前加上“#”注释,重新登录即可实现复制不提示

方法二:直接输入命令即可实现,用 \cp 代替 cp:

\cp -f install.sh /root/scripts/
赞(0)
关注我们
未经允许不得转载:老王博客 » 解决 Linux cp 命令加了 -f 后依然提示覆盖的问题

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址