linux常用命令:cp 命令

  cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。

1.命令格式:

用法:

cp [选项]... [-T] 源 目的

或:cp [选项]... 源... 目录

或:cp [选项]... -t 目录 源...

2.命令功能:

  将源文件复制至目标文件,或将多个源文件复制至目标目录。

3.命令参数:

-a, --archive      等于-dR --preserve=all

--backup[=CONTROL  为每个已存在的目标文件创建备份

-b                      类似--backup 但不接受参数

--copy-contents           在递归处理是复制特殊文件内容

-d                      等于--no-dereference --preserve=links

-f, --force             如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)

-i, --interactive            覆盖前询问(使前面的 -n 选项失效)

-H                               跟随源文件中的命令行符号链接

-l, --link                  链接文件而不复制

-L, --dereference        总是跟随符号链接

-n, --no-clobber          不要覆盖已存在的文件(使前面的 -i 选项失效)

-P, --no-dereference       不跟随源文件中的符号链接

-p                                    等于--preserve=模式,所有权,时间戳

--preserve[=属性列表      保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等

-R, -r, --recursive  复制目录及目录内的所有项目

4.命令实例:

实例一:复制单个文件到目标目录,文件在目标文件中不存在

命令:

cp log.log test5

输出:

[[email protected] test]# cp log.log test5

[[email protected] test]# ll

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxr-xr-x 6 root root 4096 10-27 01:58 scf

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

drwxr-xr-x 2 root root 4096 10-28 14:53 test5

[[email protected] test]# cd test5

[[email protected] test5]# ll

-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log

-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log

-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log

-rw-r--r-- 1 root root 0 10-28 14:53 log.log

说明:

  在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。

实例二:目标文件存在时,会询问是否覆盖

命令:

cp log.log test5

输出:

[[email protected] test]# cp log.log test5

cp:是否覆盖“test5/log.log”? n

[[email protected] test]# cp -a log.log test5

cp:是否覆盖“test5/log.log”? y

[[email protected] test]# cd test5/

[[email protected] test5]# ll

-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log

-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log

-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log

-rw-r--r-- 1 root root 0 10-28 14:48 log.log

说明:

  目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。

实例三:复制整个目录

命令:

输出:

目标目录存在时:

[[email protected] test]# cp -a test3 test5 

[[email protected] test]# ll

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxr-xr-x 6 root root 4096 10-27 01:58 scf

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

drwxr-xr-x 3 root root 4096 10-28 15:11 test5

[[email protected] test]# cd test5/

[[email protected] test5]# ll

-rw-r--r-- 1 root root    0 10-28 14:46 log5-1.log

-rw-r--r-- 1 root root    0 10-28 14:46 log5-2.log

-rw-r--r-- 1 root root    0 10-28 14:46 log5-3.log

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

目标目录不存在时:

[[email protected] test]# cp -a test3 test4

[[email protected] test]# ll

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxr-xr-x 6 root root 4096 10-27 01:58 scf

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

drwxrwxrwx 2 root root 4096 10-28 14:47 test4

drwxr-xr-x 3 root root 4096 10-28 15:11 test5

[[email protected] test]#

说明:

  注意目标目录存在与否结果是不一样的。目标目录存在时,整个源目录被复制到目标目录里面。

实例四:复制的 log.log 建立一个连结档 log_link.log

命令:

cp -s log.log log_link.log

输出:

[[email protected] test]# cp -s log.log log_link.log

[[email protected] test]# ll

lrwxrwxrwx 1 root root    7 10-28 15:18 log_link.log -> log.log

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxr-xr-x 6 root root 4096 10-27 01:58 scf

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

drwxrwxrwx 2 root root 4096 10-28 14:47 test4

drwxr-xr-x 3 root root 4096 10-28 15:11 test5

说明:

  那个 log_link.log 是由 -s 的参数造成的,建立的是一个『快捷方式』,所以您会看到在文件的最右边,会显示这个文件是『连结』到哪里去的!

原文地址:https://www.cnblogs.com/shujuxiong/p/8975582.html

时间: 2024-10-05 23:46:53

linux常用命令:cp 命令的相关文章

Linux常用系统性能监控命令

-->Linux常用系统性能监控命令 Linux常用系统性能监控命令 2016-01-19 Linux爱好者 Linux爱好者 Linux爱好者 微信号 LinuxHub 功能介绍 伯乐在线旗下账号,「Linux爱好者」专注分享 Linux/Unix 相关内容,包括:工具资源.使用技巧.课程书籍等.   来源:工学1号馆 链接:http://wuyudong.com/archives/56 监控CPU使用率 使用下面的命令: [[email protected] ~]# gnome-system

第十三天(linux常用的基础命令 )

按照下面的要求创建一个新的逻辑卷:    *) 逻辑卷命名为database, 属于 datastore 卷组.    *) 在 datastore卷组中的逻辑卷,500M.    *)使用{ext3|ext4|xfs}文件系统对新的逻辑卷进行格式化    *)逻辑卷应该在系统启动的时候自动挂载在/mnt/database 目录下.    *)lvm扩大至1G, 并且保留其原有资料的完整性; 新增加一个 SWAP 分区    *) 大小为512MB,    *) 使该 SWAP 能够每次开机生效

Linux 常用 性能 检测 命令 解释

1.uptime [[email protected] ~]# uptime 15:08:15 up 98 days,  4:19,  2 users,  load average: 0.07, 0.29, 0.14 当前时间   系统运行至今的时间   多少用户登录当前系统   分别是1分钟,5分钟,15分钟前至今的负载情况 load average是队列平均长度,在队列中等待执行的进程数量 该值越低,说明进程更有可能立即被CPU处理,相反越高,说明进程更有可能阻塞 该命令可以检查服务器负载是

Linux中的cp命令&老九门

cp命令详解 cp命令的老九门 我们先看第一种情况: 1.源是一个文件,目标是不存在的 使用 cp aa /testdir/dir1他会创建一个dir1的目标文件,并且将源的内容放到创建的dir目标文件中 2.源是一个文件,目标存在且为文件(上述命令执行后,dir1的文件就会被创建了),然后再次执行cp aa /testdir/dir1,会提示你是否覆盖dir1这个文件,选择y后,再次查看aa和dir1文件的属性,发现dir1的mtime发生了改变说明该文件是被修改了,的确完成了复制. 但是使用

Linux 常用的压缩命令有 gzip 和 zip

Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 相应的解压缩命令则是 gunzip 和 unzip gzip 命令: # gzip test.txt 它会将文件压缩为文件 test.txt.gz,原来的文件则没有了,解压缩也一样 # gunzip test.txt.gz 它会将文件解压缩为文件 test.txt,原来的文件则没有了,为了保留原有的文件,我们可以加上 -c 选项并利用 linux

linux中的cp命令

cp命令--文件复制 目录和文件的复制命令 cp命令语法和参数: cp [OPTION]...SOURCE...DIRECTORY -a ALL 等价于dpR -d 复制符号链接源文件时,目标文件也将创建符号链接执行源文件的原始文件 -p preserve 保留文件属性,属主,属组,权限和时间 -r recursive 递归目录下的子文件 示例: [[email protected] ~]# ll /etc/services -rw-r--r-- 1 root root 362031 2006-

每天一个Linux常用命令 cp命令

Linux cp命令主要用于复制文件或目录 -a:此选项通常在复制目录时使用,它保留链接.文件属性,并复制目录下的所有内容.其作用等于dpR参数组合. -d:复制时保留链接.这里所说的链接相当于Windows系统中的快捷方式. -f:覆盖已经存在的目标文件而不给出提示. -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖 -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中. -r:若给出的源文件是一个目录文件,此时将复制该

LINUX常用配置及命令

一.   Fedora系统配置 1.      [设置网卡IP] 步骤如下: 1)     用root用户登陆,打开/etc/sysconfig/network-scripts/ifcfg-eth0文件 注意:打开的文件要根据网卡来设置,如:网卡eth1的配置文件就是ifcfg-eth1. 2)     设置以下内容: DEVICE=eth0 BOOTPROTO=static IPADDR=10.128.32.36 NETMASK=255.0.0.0 ONBOOT=yes GATEWAY=10.

linux常用20条命令

1.cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径.如: cd /root/Docements # 切换到目录/root/Docementscd ./path          # 切换到当前目录下的path目录中,"."表示当前目录  cd ../path         # 切换到上层目录中的path目录中,".."表示上一层目录 2.ls命令 这是一个非常有用的查看文

Linux常用的基础命令总结

man 查看英文命令帮助   可以看作--help 拷贝目录的命令cp -a  包含所有 ls -a 显示所有文件包括隐藏文件  -ld ls -F 过滤目录文件(给不同类型文件结尾加上不同的符号) -h显示文件的k,M,G  -i显示文件的索引inode       ls -l --time-style=long-iso 文件 更好的显示文件的修改时间 ls -p 查找出来的内容添加斜线. ls -F 查找出来的内容 添加不同的符号. ls -t根据时间排序  ls -r反转排序  -lt 显