linux-func-cp

介绍

用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

用法

1
cp (选项)(参数)

选项

选项 描述
-a 此参数的效果和同时指定”-dpR”参数相同;
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f 强行复制文件或目录,不论目标文件或目录是否已存在;
-i 覆盖既有文件之前先询问用户;
-l 对源文件建立硬连接,而非复制文件;
-p 保留源文件或目录的属性;
-R/r 递归处理,将指定目录下的所有文件与子目录一并处理;
-s 对源文件建立符号连接,而非复制文件;
-u 使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S 在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b 覆盖已存在的文件目标前将目标文件备份;
-v 详细显示命令执行的操作。

参数

参数 描述
源文件 制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件 指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

例子

1
2
3
4
5
6
7
8
9
10
11
12
# 将目录/home/aa下的所有文件及其子目录复制到目录/home/bb中,需要Y确认
cp -r /home/aa /home/bb

# 将目录/home/aa下的所有文件及其子目录以及属性都复制到目录/home/bb中,需要Y确认,
cp -r -a /home/aa /home/bb

# 将目录/home/aa下的所有文件及其子目录以及属性都复制到目录/home/bb中,不需要Y确认,
\cp -r -a /home/aa /home/bb

# 拷贝所有文件,不覆盖,不弹确认
awk 'BEGIN {cmd="cp -ri ./import/* ./younuo/import/ "; print "n" |cmd; }'
awk 'BEGIN {cmd="cp -ri ./res/* ./cdn/res/ "; print "y" |cmd; }'