该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的命令一样,功能十分强大。
语法: cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
该命令的各选项含义如下:
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文纳梁件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的段正目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
例子:
Cp -i file1 file2 (将文档 file1 复制成 file2 . _i为提示确认。)
cp file1 dir1 将文档 file1 复制到目录 dir1 下,文件名仍为 file1.
cp /tmp/file1 . 将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.
cp /tmp/file1 file2 将目录 /tmp 下的文档 file1现行目录下,档名为file2
cp -r dir1 dir2 握茄悔 (recursive ) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2.
‘贰’ linux的cp怎么覆盖
cp命令是我日常学习中经常会遇到的一个命令,下面这篇文章主要给大家介绍了关于Linux系统利用cp命令实现强制覆盖功能的方法,并且给大家简单的介绍了cp命令的基础知识,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
前言
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
语法
cp(选项)(参数)
选项
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
参数
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
利用cp命令实现强制覆盖功能
我们平常在Linux中使用 cp 命令时,会发现将一个目录中文件复制到另一个目录具有相同文件名称时,即使添加了 -rf 参数强制覆盖复制时,系统仍然会提示让你一个个的手工输入 y 确认复制,所添加的rf参数是不起作用的。
原因:
cp命令被系统设置了别名,相当于cp=‘cp -i' 。
查询alias命令
[root@localhost sonarqube]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
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 参数
-i, --interactive
prompt before overwrite
-i 即交互的缩写方式,也就是在使用 cp 命令作文件覆盖操作之前,系统会要求确认提示.这个本来是系统的一个保险措施.如果有很多文件要复制,觉得一个一个输入y 确认麻烦的话,可以使用如下方法解决:
强制复制
建议大家使用方式一,因为取消别名的话很容易造成风险,万一又忘记恢复别名,以后的复制都不会有提示信息。
有提示信息可以多一层保险嘛,是人都会有犯混的时候,给自己加一个保险,有保障呀.
‘叁’ linux下移动或者复制文件覆盖相同文件夹时,文件夹里面的每个文件都提示是否覆盖
1、这么就用不会提示了:# cp -rf x0dx0a2、 原因:x0dx0a# vi ~/.bashrcx0dx0a 如果你看到如下内容,以下命令都会用别名执行了,就是说自动加了 -i 参数:x0dx0ax0dx0aalias rm='rm -i'x0dx0aalias cp='cp -i'x0dx0aalias mv='mv -i'x0dx0a 为了让复制和移动大量文件去覆盖目标时,不会产生一个个的提示,命令应该这样写x0dx0a# cp -rf /data/xxx* /home/xxx x0dx0a注意 cp 命令前加了 ,意思是不让它用~/.bashrc里的别名运行,即 -i 参数x0dx0a3、补充cp该命令的各选项含义如下x0dx0a- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并裂册递归地拷贝目录,其作用等于dpR选项的组合。x0dx0a- d 拷贝时保留链接。x0dx0a- f 删除已经存在的目标文件而不提示。x0dx0a- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝肆搏宏。x0dx0a- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。x0dx0a- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。x0dx0a- l 不作拷贝,只是链接文件。x0dx0a4、需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,银察因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
‘肆’ 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即可。
‘伍’ linux cp命令对于拷贝文件和文件夹有何区别
cp文件时候可以不用加参数,但是cp文件夹的时候必须加-R或-r。解决方法如下:
1、首先将文件复制到另一个目录中:cp 文件名 目录名。复制a.txt至test目录中,则执行 cp a.txt /test 即可。
‘陆’ linuxcp命令详解
cp命令是linux下的一个文件管理命令,通常是用于复制文件或目录,cp命令主要有两个功能,具体介绍如下:‘柒’ LINUX命令的cp -r 和-R的区别是
LINUX命令的cp -r 和-R的区别为:复制不同、覆盖不同、识别依据不同。
一、复制不同
1、cp -r:cp -r既复制当前目录下的文件,也复制当前目录下的文件夹。
2、-R:-R只复制当前目录下的文件,不复制当前目录下的文件夹。
二、覆盖不同
1、cp -r:cp -r含文件的文件夹会覆盖不含文件的同名文件夹,文件也会覆盖。
2、-R:-R不会覆盖含内容的文件夹,但是会覆盖同名的空文件。
三、识别依据不同
1、cp -r:cp -r不以文件后缀名作为识别依据。
2、-R:-R以文件后缀名作为识别依据。
‘捌’ linux cp 复制某文件夹下所有文件夹至另一文件夹并覆盖
注释:复制cudnn-9.2-linux-x64-v7.6.5.32/哪辩cuda下所有文件夹至/usr/local/cuda-9.2并覆盖/usr/local/cuda-9.2文件夹下的橘祥include和lib64的李伍缺文件
‘玖’ linux cp命令一个目录复制到另一个目录
linux复制指定目录下的全部文件到另一个目录中
复制指定目录下的全部文件到另一个目录中
文件及目录的复制是经常要用到的。linux下进行复制的命令为cp。
假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下所有文件复制到dir2下了
如果dir2目录不存在,则可以直接使用。《Linux就该这么学》
cp -r dir1 dir2
例:cp -r /data01/sinopec/pos/. /data01/sinopec/pos-pc/
即可。
如果dir2目录已存在,则需要使用
cp -r dir1/. dir2
如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。
ps:dir1、dir2改成对应的目录路径即可。
cp -r /home/www/xxx/statics/. /home/www/statics
‘拾’ Linux cp强制覆盖、复制文件夹
\cp -rf * /xxxx/
默认情况下,cp覆盖时,无论加什么参数 -f 之类的 还是提示是否覆盖。
原因是:服务器会默认增加别名 alias cp=’cp -i’,当你执行cp时,其实执行的是cp –i。
[root@ltt01 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'