xDroid's Blog

9 自古红蓝出__ (从新手到菜鸟的Linux教程)

这个标题还是很有吸引力的吧:-D

然而上古时期的程序猿大概没有想过这么多;事实上呢,cp(copy)是一个用来复制文件的命令。用法还是蛮简单的:

wang:~$ cp long_dull_text another_long_dull_text

这样前面那个文件就复制出一个副本,文件名是第二个参数。

cp(包括mv也是一样)有另外一种用法:如果给它很多很多个参数,而且最后一个是文件夹的话,它就会把前面的文件都复制(对于mv来说就是移动啦)到那个文件夹里去

cp file1 file2 ... _dir # copy file1, file2, ... to _dir

有一点要注意的是,默认情况下cpmv对待文件夹的“态度”是不同的。我们来试试看:

wang:~$ mkdir Dir # make a directory secretly
wang:~$ echo "Hi!" > Dir/file1 # create a file secretly
wang:~$ ls
another_long_dull_text Documents ex_file Pictures Videos
Desktop Downloads long_dull_text Public
Dir examples.desktop Music Templates
wang:~$ ls Dir
file1
wang:~$ mv Dir Dir2 # okay
wang:~$ ls
another_long_dull_text Documents ex_file Pictures Videos
Desktop Downloads long_dull_text Public
Dir2 examples.desktop Music Templates
wang:~$ ls Dir2
file1
wang:~$ cp Dir2 Another_Dir2 # no effect
cp: omitting directory ‘Dir2’
wang:~$ ls
another_long_dull_text Documents ex_file Pictures Videos
Desktop Downloads long_dull_text Public
Dir2 examples.desktop Music Templates

为什么cp不复制文件夹呢?这个问题牵涉的方面比较多,暂时不好回答;大概原因是文件夹也被看作一个“文件”,只是性质略有些区别,所以不能“直接”复制。总之先记着解决办法就行啦:

wang:~$ cp Dir2 Another_Dir2 -r # work with '-R' too
wang:~$ ls
Another_Dir2 Dir2 examples.desktop Music Templates
another_long_dull_text Documents ex_file Pictures Videos
Desktop Downloads long_dull_text Public

-r(或者-R)意思是递归地(recursively)复制文件。

现在我们已经掌握了文件的移动与复制;明天再介绍删除操作,就基本可以在命令行下工作啦(≧▽≦)