命令格式
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
命令描述
拷贝文件和目录
参数说明
-a, --archive : 等同于-dR --preserve=all
--backup[=CONTROL] :对每个现有文件进行备份 CONTROL为可选参数,其值为
none, off:从不备份(即使给出 --backup)
numbered, t:用编号备份
existing, nil :如果编号备份存在则使用编号备份,否者用简易备份[译注:也就是用波浪号]
simple, never :总是使用简易备份
-b : 等同于--backup ,不带值
-f 或 --force : 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive : 覆盖文件之前先询问用户
-l 或 --link : 对源文件建立硬链接,而非复制文件
-p 或 --preserve : 保留源文件或目录的属性,包括所有者、所属组、权限与时间
-P 或 --no-dereference : 从不继承源文件的符号链接* (这里我测试,cp一个符号链接文件后,新文件也是一个符号链接文件)
-r : 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive : 递归处理,将指定目录下的文件及子目录一并处理
-s 或 --symbolic-link :对源文件建立符号链接,而非复制文件
-S <备份字尾字符串> 或 --suffix=<备份字尾字符串> : 用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"
-u 或 --update : 使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
-v 或 --verbose : 显示执行过程
--version : 显示版本
-x 或 --one-file-system复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件
--help显示在线帮助
--sparse=<使用时机>设置保存希疏文件的时机,可选参数
auto:源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也被为稀疏
always : 不论源文件是否包含足够长的0 序列也将目标文件创建为稀疏件。
never: 禁止创建稀疏文件。
示例
-b的用法
sly@fskj-u-sly:~/st$ ls 1.txt 2.txt sly@fskj-u-sly:~/st$ cp -b -S .bak 1.txt 2.txt cp:是否覆盖"2.txt"? y sly@fskj-u-sly:~/st$ ls -l 总用量 0 -rw-rw-r-- 1 sly sly 0 7月 21 17:02 1.txt -rw-rw-r-- 1 sly sly 0 7月 21 17:36 2.txt -rw-rw-r-- 1 sly sly 0 7月 21 17:35 2.txt.bak
创建硬链接
sly@fskj-u-sly:~/st$ cp -l 1.txt 2.txt sly@fskj-u-sly:~/st$ ls -li #这个参数i是查看inode号,可以看到,两个文件的inode一样 总用量 0 1834184 -rw-rw-r-- 2 sly sly 0 7月 21 17:02 1.txt 1834184 -rw-rw-r-- 2 sly sly 0 7月 21 17:02 2.txt
创建符号链接
sly@fskj-u-sly:~/st$ ln -s 1.txt 2.txt sly@fskj-u-sly:~/st$ ls -l 总用量 0 -rw-rw-r-- 1 sly sly 0 7月 21 17:02 1.txt lrwxrwxrwx 1 sly sly 5 7月 21 17:26 2.txt -> 1.txt
将一个目录的文件复制到另一个目录
sly@fskj-u-sly:~$ cp -R st st2 sly@fskj-u-sly:~$ ls -l st2/ 总用量 0 -rw-rw-r-- 1 sly sly 0 7月 21 17:28 1.txt lrwxrwxrwx 1 sly sly 5 7月 21 17:28 2.txt -> 1.txt sly@fskj-u-sly:~$ ls -l st 总用量 0 -rw-rw-r-- 1 sly sly 0 7月 21 17:02 1.txt lrwxrwxrwx 1 sly sly 5 7月 21 17:26 2.txt -> 1.txt
如果目录已经存在不能使用上述方法
sly@fskj-u-sly:~$ ls -ld st2 st/ drwxrwxr-x 2 sly sly 4096 7月 21 17:26 st/ drwxrwxr-x 2 sly sly 4096 7月 21 17:30 st2 sly@fskj-u-sly:~$ cp -R st st2 sly@fskj-u-sly:~$ ls -l st2/ # 你会发现将整个目录拷贝过去了 总用量 4 drwxrwxr-x 2 sly sly 4096 7月 21 17:31 st sly@fskj-u-sly:~$ cp -R st/* st2 sly@fskj-u-sly:~$ ls -l st2/ 总用量 0 -rw-rw-r-- 1 sly sly 0 7月 21 17:33 1.txt lrwxrwxrwx 1 sly sly 5 7月 21 17:33 2.txt -> 1.txt
使用-p参数保留源文件的属性(这里使用sudo是为了有权限创建www-data用户的文件)
sly@fskj-u-sly:~/st$ ls -l 总用量 0 -rw-rw-r-- 1 www-data www-data 0 7月 21 17:02 1.txt sly@fskj-u-sly:~/st$ date && sudo cp 1.txt 2.txt && sudo cp -p 1.txt 3.txt 2015年 07月 21日 星期二 17:47:04 CST sly@fskj-u-sly:~/st$ ls -l #可以看出,加了-p参数后,目标文件的权限和时间信息都没用修改 总用量 0 -rw-rw-r-- 1 www-data www-data 0 7月 21 17:02 1.txt -rw-r--r-- 1 root root 0 7月 21 17:47 2.txt -rw-rw-r-- 1 www-data www-data 0 7月 21 17:02 3.txt
本文出自 “木木的博客” 博客,请务必保留此出处http://slyadm.blog.51cto.com/6223864/1676814
原文地址:http://slyadm.blog.51cto.com/6223864/1676814