[转载] 与WIN不同,linux替换文件夹会删除原文件夹下的全部内容!

时间:2022-08-24 23:35:56

今天差点把源码给覆盖掉了><...555...

虚惊一场!!看了一篇博客分析这种情况。我的环境是CentOS5.5,不会出现文件夹直接被覆盖的情况,但是在Linux下不要用Win下的一些直接操作,最好用命令行操作

原文件夹folder含一个文件test.txt和一个子文件夹subdir;

同名新文件夹folder下只有一个文件test.txt。 
我在文件夹中用鼠标复制新文件夹到旧文件夹所在的文件夹,在windows下只会替换其中新文件夹中的test.txt,旧文件夹下的子文件夹subdir不会受影响;而在linux下旧文件夹下面的子文件夹subdir也会被删除! 
这就是linux和windows不同的地方之一,一些在windows下面想当然的操作在linux下没有用过也不要去随便做。

另外,我在linux下的命令行方式下试了一下复制覆盖操作: 
假设folder和anotherfolder在当前目录下,anotherfolder下有个名为folder的旧文件夹, 
cp folder anotherfolder/ -fr

这样操作只会覆盖同名的文件test.txt,而不会覆盖旧文件夹下面的其它东西。 
这跟用什么文件管理器没关系,LINUX对设备、文件夹都是以文件的形式来管理的。也就是说,从软件层面来讲,对于LINUX而言,一个设备是一个文件、一个文件夹也是一个文件。

试试:vi $FOLDER      ($FOLDER可以是你想输入的任何文件夹路径) 
你会看到终端打开了这个“文件”并且显示除了$FOLDER所指定文件夹下面的所有文件名。 
所以你覆盖了文件夹,当然它里面所管理的文件列表就变了,所以你进到那个文件夹也就看不到你之前的文件了。 
不过比较新版的LINUX已经改进了这个机制,可以有一个比较覆盖的机制,也就是和WINDOWS一样的了。

http://www.linuxsir.org/bbs/thread277543.html