日期:2014-05-16  浏览次数:20751 次

关于Linux下命令使用的问题求解
以root身份登录
之后在root家目录中创建了一个目录 dir_test_20111101
进入该目录后使用cp命令
cp -r /var/mail .
得到的是一个连接文件
之后再调用cp命令
cp -r /var/mail/ mail_tmp
得到的是一个目录

小弟想请教一下加不加"/"有啥区别啊?
是否只有拷贝的目录本身是连接时才会有所区别的呢???

------解决方案--------------------
Assembly code

[root@RHEL6A tmp]# cp -r /var/mail .
[root@RHEL6A tmp]# ls
data1.txt  data4.txt   osstarttest.txt     shaa.sh  test
data2.txt  etc.tar.gz  pulse-5iGMZJA28qP1  shab.sh  user1_files.txt
data3.txt  mail        pulse-l74hRhWYTOSG  shac.sh  virtual-root.JOp5Zt
[root@RHEL6A tmp]# ls -l mail
lrwxrwxrwx. 1 root root 10 Dec 21 11:30 mail -> spool/mail

因为/var/mail是个链接文件,cp -r是递归的拷贝目标对象,cp -r /var/mail .只是拷贝了这个文件
[root@RHEL6A tmp]# ls -l /var/mail
lrwxrwxrwx. 1 root root 10 Dec  8 13:44 /var/mail -> spool/mail
cp -r /var/mail/ mail_tmp是表示递归的拷贝/var/mail目录下的对象到当前目录下,并重命名该目录为mail_tmp
[root@RHEL6A tmp]# cp -r /var/mail/ mail_tmp
[root@RHEL6A tmp]# ls
data1.txt  etc.tar.gz       pulse-5iGMZJA28qP1  shac.sh
data2.txt  mail             pulse-l74hRhWYTOSG  test
data3.txt  mail_tmp         shaa.sh             user1_files.txt
data4.txt  osstarttest.txt  shab.sh             virtual-root.JOp5Zt
[root@RHEL6A tmp]#

------解决方案--------------------
探讨

后面那个后面多了一个斜杠,会以目录的形式进行分析,所以就拷贝链接指向的目录了。

前面那个,因为后面没有带斜杠,不会首先以目录形式分析,是一个链接,所以把链接拷贝过来了。