对Linux的cp命令的思考
关于cp命令:
1.将一个文件复制到一个目录中,并保持原文件名。
[root@localhost test]# ls -l total 44 drwxr-xr-x 2 root root 4096 May 4 20:56 d1 drwxr-xr-x 4 root root 4096 May 3 23:00 d2 -rw-r--r-- 1 root root 0 May 4 20:54 dir1 -rw-rw-r-- 1 zhangfengzhe zhangfengzhe 0 Feb 26 2012 helloworld -rw-r--r-- 1 root root 0 May 3 23:05 helloworld2 -rw-rw-r-- 1 zhangfengzhe zhangfengzhe 0 Feb 26 2012 helloworld3 -rw-r--r-- 1 root root 0 May 3 22:49 t1 -rw-r--r-- 1 root root 0 May 3 22:49 t2 -rw-r--r-- 1 root root 0 May 3 22:49 t3 [root@localhost test]# cp /etc/passwd ./ [root@localhost test]# ls -l total 52 drwxr-xr-x 2 root root 4096 May 4 20:56 d1 drwxr-xr-x 4 root root 4096 May 3 23:00 d2 -rw-r--r-- 1 root root 0 May 4 20:54 dir1 -rw-rw-r-- 1 zhangfengzhe zhangfengzhe 0 Feb 26 2012 helloworld -rw-r--r-- 1 root root 0 May 3 23:05 helloworld2 -rw-rw-r-- 1 zhangfengzhe zhangfengzhe 0 Feb 26 2012 helloworld3 -rw-r--r-- 1 root root 1705 May 4 21:03 passwd -rw-r--r-- 1 root root 0 May 3 22:49 t1 -rw-r--r-- 1 root root 0 May 3 22:49 t2 -rw-r--r-- 1 root root 0 May 3 22:49 t3 [root@localhost test]# |
2.将一个文件复制到一个目录中,但是重命名这个文件名称。
[root@localhost test]# cp /etc/passwd ./mypasswd [root@localhost test]# ls -l total 60 drwxr-xr-x 2 root root 4096 May 4 20:56 d1 drwxr-xr-x 4 root root 4096 May 3 23:00 d2 -rw-r--r-- 1 root root 0 May 4 20:54 dir1 -rw-rw-r-- 1 zhangfengzhe zhangfengzhe 0 Feb 26 2012 helloworld -rw-r--r-- 1 root root 0 May 3 23:05 helloworld2 -rw-rw-r-- 1 zhangfengzhe zhangfengzhe 0 Feb 26 2012 helloworld3 -rw-r--r-- 1 root root 1705 May 4 21:05 mypasswd -rw-r--r-- 1 root root 1705 May 4 21:03 passwd -rw-r--r-- 1 root root 0 May 3 22:49 t1 -rw-r--r-- 1 root root 0 May 3 22:49 t2 -rw-r--r-- 1 root root 0 May 3 22:49 t3 [root@localhost test]# |
3.将多个文件复制到一个目录中,注意只能是files copy to directory,并且directory必须存在。
[root@localhost test]# cp t1 t2 t3 dir2 cp: target `dir2‘ is not a directory |
4.将目录递归复制到目标目录,目标目录可以不存在,因为可以先复制过去后重命名。
[root@localhost test]# cp -r d2 ./d1/abcdef [root@localhost test]# tree d1 d1 |-- abcdef | |-- d1 | | |-- t1 | | |-- t2 | | `-- t3 | |-- d11 | | |-- t1 | | |-- t2 | | `-- t3 | |-- t1 | `-- t22 |-- helloworld |-- t1 |-- t2 `-- t3 |
5.文件有2个方面的内容,一个是文件内容,一个是文件的属性(mode,owner,group,timestamp),考虑下,cp将如何处理文件的属性?
在默认情况下,谁复制的这个文件,那么新文件就属于谁的。 可以使用-p(perserve)保持住原来的文件属性。 |
6.如果文件是链接文件,那么复制的是链接,还是链接所指向的文件?
默认情况下,cp复制的是链接文件指向的文件。 可以通过-P选项,达到只复制链接文件。
(有时候,这将非常有用,因为,我们就只是想复制链接而已。)
7.我们常常使用cp -a来实现文件的打包归档存放(保持住文件的一切属性),经常用于备份。
本文出自 “学习笔记” 博客,请务必保留此出处http://zhangfengzhe.blog.51cto.com/8855103/1406904
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。