当前位置:懂科普 >

综合知识

> linux cp 不覆盖

linux cp 不覆盖

linux cp 不覆盖

在linux中,可以利用cp命令的“-i”参数实现不覆盖文件,cp命令用于复制文件或者目录,当参数设置为“-i”时,在覆盖文件之前会给出提示,回答“n”时表示不同意覆盖文件,回答“y”时表示同意覆盖文件,语法为“cp -i 文件名”。

小编还为您整理了以下内容,可能对您也有帮助:

Linux下如何使CP命令不提示覆盖

在Linux下使用CP命令,经常会提示是否覆盖,如果是太批量的文件覆盖,老是这么提示,会很烦的。那如何解决这个问题呢? 我们先来看一下原因吧! 一般我们使用的命令是cp -rf sourcefile targetdir或cp -r -f sourcefile targetdir, -r的意思是递归复制,也就是复制文件夹及其下所有文件 -f的意思是遇到同名的文件,不提示,直接覆盖 但为什么我们用这两个参数,系统还是会提示覆盖呢? 这是因为,系统在安装的时候使用了别名,防止我们误操作,覆盖了不该覆盖的文件。使用别名命令就可以看到具体的配置了。[test@Server home]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=tty'

alias ll='ls -l --color=tty'

alias ls='ls --color=tty'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 从上边我们可以看出,我们输入的cp命令,其实是“cp -i”命令, 也就是不管我们怎么输入 cp -rf,其实执行的是 cp -i -rf , 也无怪乎总是提问是否覆盖了。 从上边的命令我们可以知道,其他几个命令,也使用了别名,例如ll,ls mv,rm等。 那么如何解决这个问题呢?[test@Server home]# vi ~/.bashrc

# .bashrc# User specific aliases and functionsalias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'# Source global definitions

. /etc/bashrcfi只要在相应的命令前加#号,就可以注释掉该命令了。保存退出,然后你就可以用纯粹的原命令了。 其实还有一种办法可以解决这个问题,就是使用 \cp -f file dir 就可以了!

在Linux中,要将指定源文件复制到目标文件,但不覆盖原有文件时,需使用( )命令。

【答案】:C

本题考查Linux文件系统的基本知识。在Linux系统中,文件复制命令cp。cp命令的功能是把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。如同 DOS下的 copy命令一样。cp命令的一般格式是:

Cp [-选项] source fileName | directory dest fileName | directory

重要选项参数说明如下。

? -a: 整个目录拷贝。它保留链接、文件属性,并递归地拷贝子目录。

? -f: 删除己经存在的目标文件而不提示。

? -i: 和 f 选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答 y 时目 标文件将被覆盖,是交互式拷贝。

? -p: 除复制源文件的内容外,还把其修改时间以及访问权限也复制到新文件中。

? -R:若给出的源文件是一目录文件,将递归复制该目录下所有的子目录和文件 。

此时目标文件必须为一个目录名。

? -l: 不作拷贝,只是链接文件。

linux的cp怎么覆盖?

Linux下cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当没有打包的情况下直接复制:

把test目录下的文件复制到test1目录;

cp

–r

test/*

test1

执行上面的命令时,test1存在的每个文件都会提示是否覆盖;

cp

–rf

test/*

test1

执行上面的命令时,test1存在的每个文件都不再会提示;

这是我们希望的理想状态,但是有时加了-f了,还会有提示.

因为服务器会默认增加别名

alias

cp='cp

-i',当你执行cp时,其实执行的是cp

–i。

alias下就可以看出来了。

#

alias

alias

cp='cp

-i'

用下面可以解决

#

vi

~/.bashrc

在alias

cp='cp

-i'前加上"#"注释掉这行,:wq!保存推出,然后重新登陆就可以了。

下次在使用cp

-rf

就可以直接覆盖已经存在了文件了。

当然你不想改变别名的话可以转义掉,\cp

-rf即可。

标签: cp 覆盖 linux
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/zonghezhishi/nleq8l.html