一天一个Linux基础命令之复制文件或目录命令cp
2016-12-11 22:10
1111 查看
cp复制文件或目录
1、命令格式
2、命令说明
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。
将源文件复制到目标文件,源文件可以有多个,目标文件只能有一个
3、命令参数
-a:等于-dR选项一起用,保持所有属性
-b:当目标文件存在时则备份目标文件,然后把新文件复制过去
-d:当源为链接文件时,复制链接文件本身而非指向的源文件
-p:复制文件或目录的时候保持文件的元数据信息,时间戳,属主,属组
-f:强制复制,如果文件存在则强制覆盖不询问管理员(不好用)
-i:如果文件存在,则询问管理员是否覆盖
-L:复制链接文件时,总是复制链接文件的源文件
-r|-R:复制目录及目录中的内容
-n:复制文件时不会覆盖现有文件
-t:用于源文件有多个的情况下,此时目标文件在前,源文件或目录在后-u:复制文件时如果目标文件比源文件新,则不复制 -v,--verbose:显示详细信息
--help:帮助
--version:显示命令版本
4、常用实例
1、复制单个文件到目标目录中,目标目录文件不存在
命令:cp login /bak
提示:在没带-p参数时时间是不一样的,在带-p参数后时间是一样的,并且属主属组也一样,-a参数是在-p参数的基础上在加上-d的功能,-d是复制链接文件时,复制链接文件并非原文件。
例2:复制文件存在时,询问是否覆盖
说明:目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
例3:复制整个目录
命令:cp -r /bak ./
提示:./表示当前目录,复制目录时,如果目标目录不存在则创建,如果目标目录存在则把原文件复制到目标目录中
例4:复制链接文件
命令:cp -d login /bak/
说明:复制链接文件时-d是只复制链接文件,不复制链接文件的原文件
1、命令格式
cp[OPTION]... SOURCE... DIRECTORY
2、命令说明
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。
将源文件复制到目标文件,源文件可以有多个,目标文件只能有一个
3、命令参数
-a:等于-dR选项一起用,保持所有属性
-b:当目标文件存在时则备份目标文件,然后把新文件复制过去
-d:当源为链接文件时,复制链接文件本身而非指向的源文件
-p:复制文件或目录的时候保持文件的元数据信息,时间戳,属主,属组
-f:强制复制,如果文件存在则强制覆盖不询问管理员(不好用)
-i:如果文件存在,则询问管理员是否覆盖
-L:复制链接文件时,总是复制链接文件的源文件
-r|-R:复制目录及目录中的内容
-n:复制文件时不会覆盖现有文件
-t:用于源文件有多个的情况下,此时目标文件在前,源文件或目录在后-u:复制文件时如果目标文件比源文件新,则不复制 -v,--verbose:显示详细信息
--help:帮助
--version:显示命令版本
4、常用实例
1、复制单个文件到目标目录中,目标目录文件不存在
命令:cp login /bak
[root@server~]# ll total 48 -rw-------.1 root root 1442 Dec 7 21:28 anaconda-ks.cfg -rw-r--r--.1 root root 322 Dec 11 21:45 ifuser.sh -rw-r--r--.1 root root 27312 Dec 7 21:28install.log -rw-r--r--.1 root root 7572 Dec 7 21:27 install.log.syslog lrwxrwxrwx.1 root root 14 Dec 11 21:21 login-> /sh/iflogin.sh -rw-------.1 root root 0 Dec 9 20:39 yum.log [root@server~]# ll /bak/ [root@server~]# cp ifuser.sh /bak/ [root@server~]# ll /bak/ total 4 -rw-r--r--.1 root root 322 Dec 11 21:46 ifuser.sh [root@server~]#
提示:在没带-p参数时时间是不一样的,在带-p参数后时间是一样的,并且属主属组也一样,-a参数是在-p参数的基础上在加上-d的功能,-d是复制链接文件时,复制链接文件并非原文件。
例2:复制文件存在时,询问是否覆盖
[root@server~]# ll /bak/ total 20 -rw-r--r--.1 root root 1926 Nov 27 2013CentOS-Base.repo -rw-r--r--.1 root root 638 Nov 27 2013 CentOS-Debuginfo.repo -rw-r--r--.1 root root 630 Dec 8 20:43 CentOS-Media.repo -rw-r--r--.1 root root 3664 Nov 27 2013 CentOS-Vault.repo -rw-r--r--.1 root root 322 Dec 11 21:46 ifuser.sh [root@server~]# cp ifuser.sh /bak/ cp:overwrite `/bak/ifuser.sh'? y [root@server~]# cp -f ifuser.sh /bak/ cp:overwrite `/bak/ifuser.sh'? y [root@server~]#
说明:目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
例3:复制整个目录
命令:cp -r /bak ./
[root@server~]# ls anaconda-ks.cfg ifuser.sh install.log install.log.syslog login yum.log [root@server~]# cp -r /bak/ ./ [root@server~]# ls anaconda-ks.cfg bak ifuser.sh install.log install.log.syslog login yum.log [root@server~]# cd bak/ [root@serverbak]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo ifuser.sh [root@serverbak]#
提示:./表示当前目录,复制目录时,如果目标目录不存在则创建,如果目标目录存在则把原文件复制到目标目录中
例4:复制链接文件
命令:cp -d login /bak/
[root@server~]# ll /bak/ total 16 -rw-r--r--.1 root root 1926 Nov 27 2013CentOS-Base.repo -rw-r--r--.1 root root 638 Nov 27 2013 CentOS-Debuginfo.repo -rw-r--r--.1 root root 630 Dec 8 20:43 CentOS-Media.repo -rw-r--r--.1 root root 3664 Nov 27 2013CentOS-Vault.repo [root@server~]# ll total 48 -rw-------.1 root root 1442 Dec 7 21:28 anaconda-ks.cfg -rw-r--r--.1 root root 322 Dec 11 21:45 ifuser.sh -rw-r--r--.1 root root 27312 Dec 7 21:28install.log -rw-r--r--.1 root root 7572 Dec 7 21:27 install.log.syslog lrwxrwxrwx.1 root root 14 Dec 11 21:21 login-> /sh/iflogin.sh -rw-------.1 root root 0 Dec 9 20:39 yum.log [root@server~]# cp -d login /bak/ [root@server~]# ll /bak/ total 16 -rw-r--r--.1 root root 1926 Nov 27 2013CentOS-Base.repo -rw-r--r--.1 root root 638 Nov 27 2013 CentOS-Debuginfo.repo -rw-r--r--.1 root root 630 Dec 8 20:43 CentOS-Media.repo -rw-r--r--.1 root root 3664 Nov 27 2013CentOS-Vault.repo lrwxrwxrwx.1 root root 14 Dec 11 22:04 login ->/sh/iflogin.sh [root@server~]#
说明:复制链接文件时-d是只复制链接文件,不复制链接文件的原文件
相关文章推荐
- 一天一个Linux基础命令删除文件或目录命令rm
- 一天一个Linux基础命令之切换目录命令cd
- 一天一个Linux基础命令之列出目录信息命令ls
- 一天一个Linux基础命令之查看文件内容less
- Linux命令:cp (copy)复制文件或目录
- 一天一个linux基础命令之查看文件开头部分内容head
- 一天一个Linux基础命令之删除空目录命令rmdir
- Linux命令:cp (copy)复制文件或目录
- 一天一个linux基础命令之修改文件时间戳touch
- Linux命令:cp (copy)复制文件或目录
- Linux命令:cp (copy)复制文件或目录
- 一天一个Linux基础命令之切换目录移动命令mv
- 【Unix/Linux】【命令】【文件,目录操作工具】复制文件或目录——cp命令
- 一天一个linux基础命令之查看文件开头结尾部分内容tail
- Ubuntu_Linux命令:cp (copy)复制文件或目录
- (转)每天一个linux命令(8):cp 命令,复制文件和文件夹
- 一天一个Linux基础命令之创建目录命令mkdir
- 一天一个Linux基础命令之查看文件内容cat、tac
- 一天一个Linux基础命令之文件查看命令more
- linux命令之----cp命令用于复制文件或目录