您的位置:首页 > 运维架构 > Linux

linux命令之文件的复制(CP) [转载]

2005-06-12 14:23 627 查看
cp命令
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。
例如:在根目录(/)下有两个文件夹aa与bb,在aa内有一个aa.txt文件,在bb内有一个bb.txt文件,
现要把aa内的aa.txt拷贝到bb内(现在/目录下)
步骤如下
(1)cp不带参数(aa.txt与bb.txt内容不相同)
Administrator@SONG /
cd /aa/aa.txt  /bb  
Administrator@SONG /
(2)注意:如果aa内的文件名与bb内的文件名相同,都为aa.txt,且文件内容不同,那么执行上面的操作会覆盖bb内的aa.txt
(3)cp带参数a
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
如果aa.txt为只读的属性,cp操作后,原属性不变
Administrator@SONG /
$cp /aa/aa.txt  /bb
但如没有此参数时,只读属性是没有选中的
(4)- d 拷贝时保留链接。(不对链接文件进行拷贝)
(5)- f 删除已经存在的目标文件而不提示
(6)- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
(7)- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中
(8)- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
(9)- l 不作拷贝,只是链接文件(硬链接)
(10)-u 当源文件比目标文件新,或目标文件不存在时的更新拷贝
(11)-v 解释此操作做了什么,并拷贝
(12)-x 扩展信息
(13)- L (软链接)
例如
Administrator@SONG /
cp -l /aa/aa.txt /bb/c.txt
此时的c.txt内容随着aa.txt变化而变化,aa.txt也随着c.txt的变化而变化,但是del了aa.txt, c.txt仍然存在,那么c.txt只是aa.txt的一个别名
Administrator@SONG /
cp -L /aa/aa.txt /bb/c.txt
此时的c.txt内容不随着aa.txt的变化而变化, aa.txt也不随着c.txt的变化而变化, 如果del了aa.txt, c.txt也仍然存在
链接文件有点类似于Windows 的所谓快捷方式,但并不完全一样。链接有两种方式,软链接和硬链接。
软链接文件
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。
在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。
硬链接文件
info ln 命令告诉我们,硬链接是已存在文件的另一个名字,这多少有些令人困惑。
硬链接文件有两个限制
1、不允许给目录创建硬链接;
2、只有在同一文件系统中的文件之间才能创建链接。
对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息