我的同事和我一直在努力删除一个目录及其内容。
我们正在Ubuntu 8.04(dir:/ var / www / websites)上开发一个新版本的网站源代码,我们要做的是删除网站目录,并从我们几个星期前创build的.tar备份中重新创build。 这样做的目的是,我们可以在我们的现场/公共环境之前,在本地环境中运行我们的部署过程。
我们使用这个命令:
rm -r websites
这将删除目录及其中的文件。
当我们解压我们的备份文件并查看我们正在获取.tar备份中不存在的文件的网站时,会出现问题,实际上这些文件只是在几天前创build的,应该已经被删除了。
我们以上述方式再次删除目录,然后使用mkdir命令创build一个新的网站目录。 奇怪的是,在这个阶段“删除的文件”不会回来,但是如果我们解压我们的.tar文件,“删除的文件”又会出现。
有没有办法确保这些文件被删除,或者至less是将它们与所述目录相关联的指针。
非常感谢!
编辑
呃…我们修好了 原来重新出现的文件是因为我们到另一个目录(在/ var / www / websites之外)的链接,我们正在恢复链接,而不是删除另一端的文件。 D'哦!
非常感谢您的帮助…星期五下午综合症:-)
我认为是重新创build文件,你必须确定(检查cron日志也许?),或者文件真的在你的tar文件。
要检查它是否在tar文件中:
tar tvf tarfile.tar | grep 'nameOfReappearingFile'
tar tvzf tarfile.tar.gz | grep 'nameOfReappearingFile'
tar tzjf tarfile.tar.bz2 | grep 'nameOfReappearingFile'
要寻找cron作业,请参阅Serverfault Post: 如何在Linux上查看所有Cron作业? 。 当你看到文件开始被重新创build时,你也可以运行top来观察是否有任何进程。
这听起来像tar文件包含这些文件。 如果你实际上删除了目录,也就是在你执行了rm之后,那么“ls网站”显示它已被删除,那么文件必须在tar文件中。
tar tvf tarfile
将列出tar文件的内容而不提取任何内容。
这个问题是一个sym-link,没有一个使用足够聪明,足以发现。
不用担心 :-)