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

Linux下cp命令,实例解析

2009-07-17 10:28 423 查看
其实,cp命令对大家来讲,已经司空见惯了,我没有必要在这边罗嗦了。直到我发现cp并不是简单到大家可以不去关心。
我这里讲两个例子,大家在以后的学习过程中可以注意:
1)cp文件的时候,并不总是拷贝文件权限的
[root@localhost test]# touch a
[root@localhost test]# vim a
[root@localhost test]# ls
a
[root@localhost test]# ls -l
总计 8
-rw-r--r-- 1 root root 24 04-29 00:04 a
[root@localhost test]# cp a b
[root@localhost test]# ls
a b
[root@localhost test]# ls -l
总计 16
-rw-r--r-- 1 root root 24 04-29 00:04 a
-rw-r--r-- 1 root root 24 04-29 00:04 b
[root@localhost test]# chmod 755 a
[root@localhost test]# ls -l
总计 16
-rwxr-xr-x 1 root root 24 04-29 00:04 a
-rw-r--r-- 1 root root 24 04-29 00:04 b
[root@localhost test]# cp a b
cp:是否覆盖“b”? y
[root@localhost test]# ls -l
总计 16
-rwxr-xr-x 1 root root 24 04-29 00:04 a
-rw-r--r-- 1 root root 24 04-29 00:05 b
[root@localhost test]#

从上面的例子可以看出,刚开始创建了a文件,此时a文件的权限是644。然后拷贝了一份文件b,查看b文件的权限是644。证明此时cp文件的权限是跟着走的。
后面,我们把a文件的权限修改为755,然后再次拷贝a文件到b,此时再次查看文件b的权限,文件b的权限仍然为644,这就证明了文件在cp时权限没有跟着带走。
如果目标文件不存在,权限可以从源文件带给目标文件,如果目标文件已存在,则源文件的权限不会强加给目标文件。

2)cp并不总是成功的
如果要cp一个目录,就必须使用cp -r来拷贝,下面的例子:
[root@localhost test]# ls
[root@localhost test]# mkdir a
[root@localhost test]# mkdir b
[root@localhost test]# l
总计 32
drwxr-xr-x 4 root root 4096 04-29 00:19 .
drwxr-xr-x 4 root root 4096 04-29 00:04 ..
drwxr-xr-x 2 root root 4096 04-29 00:19 a
drwxr-xr-x 2 root root 4096 04-29 00:19 b
[root@localhost test]# cp a b
cp: 略过目录 “a”
[root@localhost test]# l b
总计 16
drwxr-xr-x 2 root root 4096 04-29 00:19 .
drwxr-xr-x 4 root root 4096 04-29 00:19 ..
[root@localhost test]# cp -r a b
[root@localhost test]# l b
总计 24
drwxr-xr-x 3 root root 4096 04-29 00:19 .
drwxr-xr-x 4 root root 4096 04-29 00:19 ..
drwxr-xr-x 2 root root 4096 04-29 00:19 a
[root@localhost test]#                                 

a和b都是目录,第一次使用cp命令拷贝文件,拷贝失败。提示cp:略过目录"a"
第二次拷贝,加上-r选项,cp成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux vim