首页 > 技术文章 > linux命令(5)cp

seaBiscuit0922 2017-09-01 12:02 原文

1. 作用

复制文件或目录,创建链接文件(即快捷方式),对比两文件的新旧而予以更新。

2. 用法

cp 【参数】【源文件】【目标文件】

参数:

-a:相当于-pdr;

-b:覆盖已存在的目标文件前将目标文件备份;

-d:若源文件为软链接(符号链接)文件,则复制链接文件而非文件本身;

-f:为强制(force)的意思,若目标文件已经存在,则删除后再复制一次;

-i:若目标文件已经存在,在覆盖时会先询问是否允许覆盖;

-l:若源文件为硬链接(hard link)文件,则创建硬链接文件的硬链接;

-p:连同文件属性一起复制,而非使用默认属性;

-r:递归持续复制,用于目录的复制;

-s:复制成为符号链接文件(symbolic link),即快捷方式;

-u:若目标文件比源文件旧,则更新目标文件;

注:若源文件有两个以上,则目标文件必须得是目录。

3. 范例

3.1 cp -b a.txt test/

覆盖已存在的目标文件前将目标文件备份,末尾加~;

3.2 cp -d soft.link ../dir/

若源文件为软链接(符号链接)文件,则复制链接文件而非文件本身;

硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块;

软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。

:复制软链接文件不带参数-d时,则直接复制的链接指向的原文件。

3.3 cp -f a.txt ../dir/

为强制(force)的意思,若目标文件已经存在,则删除后再复制一次;

注:与不带参数时复制效果一样。

3.4 cp -i a.txt ../dir/

若目标文件已经存在,在覆盖时会先询问是否允许覆盖;

注:与不带参数时复制效果一样,与带参数-f时复制效果一样。

3.5 cp -l hard.link  ../dir/hard.link2

若源文件为硬链接(hard link)文件,则创建硬链接文件的硬链接;

可以看到a.txt、hard.link、hard.link2的inode号码是一样的,hard.link是a.txt的硬链接,hard.link2是hard.link的硬链接。硬链接文件的inode 都指向同一个文件在硬盘中的区块。

3.6 cp -p a.txt ../dir/

连同文件属性一起复制,而非使用默认属性;

3.7 cp -r test/ dir/

递归持续复制,用于目录的复制;

注:目标目录dir文件夹存在时,则复制源文件夹及其内容;目标目录dir1文件夹不存在时,则只复制源文件夹的内容。

注:源文件夹和目标文件夹带不带/,复制效果一样。

3.8 cp -s a.txt soft.link

复制成为符号链接文件(symbolic link),即快捷方式;

注:目标文件目录只能是当前目录,子目录也不行。

3.9 cp -u a.txt ../dir/

若目标文件比源文件旧,则更新目标文件;

注:与不带参数复制效果一样。

 

推荐阅读