BBS水木清华站∶精华区

发信人: freedom@csie.nctu.edu.tw (Tan Koan-Sin), 信区: Unix 
标  题: Re: 如何救回不小心砍掉的档案?? 
发信站: Republic of Confusion (Mon Dec 11 07:06:38 1995) 
转信站: SMTH!aidebbs!news.csie.nctu!freedom 
Origin: freedom@dragon.csie.nctu.edu.tw 
 
最混的研究生 (bush.bbs@bbs.cs.nccu.edu.tw) wrote: 
     就像 dos 下面的 undelete , 可以救回来,在 unix 下面不小心 
     用 rm 砍掉档案,怎们救回来呢?? 谢谢 
 
from UNIX FAQ: 
 
3.6)  我要如何 "undelete" 一个档案? 
 
        某年某月的某一天,要删除 "*.foo" 却一不小心打成了 "rm * .foo", 
        结果发现竟把 "*" 都删除了。真的是欲哭无泪啊!可是你也只好把这当成 
        是成长的代价了。 
 
        当然一个称职的系统管理员应当会定期做备份。先问一问你的系统管理员看 
        你不小心删除的档案是不是有备份起来。如果没有的话,嗯,继续往下看吧! 
 
        不管你是不是真的要删除一个档案,当你下了 "rm" 以後,档案就不见了。 
        在你 "rm" 一个档案,系统就不再记得你的档案是用了硬碟中的哪些 block  
        了。更糟糕的是,当系统要用到更多的硬碟空间时,就优先取用这些刚放出 
        来的 block。不过天底下没有不可能的事。理论上说,若你在下了 "rm" 後, 
        马上把系统 shutdown,资料是就得回来的。不过,你得找一个对系统非常 
        熟悉且肯花费数小时至数天的时间来帮你做这件事的专家才行。 
 
        当你不小心 "rm" 了一个档案後,第一个反应或许是为什麽不用一个 alias  
        或在 sh 中的 function 将 "rm"  取代掉,当你下 "rm" 只把档案搬到一个 
        垃圾桶之类的地方呢?那如果不小心杀错档案就可以挽救,只是要定期清一 
        清垃圾桶就好了。有两个理由。第一,大多数的人不认为这是一个好的做法。 
        这麽做的话你会太依赖你的 "rm",有一天到了一个正常的系统中把正常的  
        "rm" 当成你的 "rm" 来用,那可能会死得很惨。第二,你会发现你花费了 
        许多不必要的时间在处理垃圾桶里的东西。所以对一个初学者而言呢,用  
        "rm" 的 -i选项应该就够了。 
 
        如果你有大无畏的精神的话,那好吧,就给你个简单的答案。写一个名为  
        "can" 的指令,功用是将档案移到垃圾桶里。在 csh(1) 中,将以下的东西 
        放进 ".login" 里: 
 
        alias can       'mv \!* ~/.trashcan'       # junk file(s) to trashcan 
        alias mtcan     'rm -f ~/.trashcan/*'      # irretrievably empty trash 
        if ( ! -d ~/.trashcan ) mkdir ~/.trashcan  # ensure trashcan exists 
 
        如果你想要每次 logout 时都把垃圾桶清乾净,那就把 
 
        rm -f ~/.trashcan/* 
 
        进 ".logout" 里。若你用的是 sh 或是 ksh,那自己试试著写写看吧! 
 
        MIT 的雅典娜计画(Project Athena)作出了一套有  
        delete/undelete/expunge/purge 的软体。这套软体可以完全取代 "rm" 而又提 
        供 undelete 的功能。这个软体曾 post 在 comp.sources.misc(volume 17,  
        issue 023-025)。 
 
PS. 
关於 FAQ 中文版: 
鉴於  tw.bbs.comp.unix 中一再出现重覆的问题 
我们({chenjl,freedom,jjyang}@csie.nctu.edu.tw)将 comp.unix.questions 的 FAQs  
翻译为中文 
希望对这种情况的改善能有所助益 
此 faq 中文版置於 ftp://ftp.csie.nctu.edu.tw/pub/CSIE/contrib/cfaq/unix 下 
亦可由  
gopher://gopher.csie.nctu.edu.tw:70/11/NCTU/CSIE/center/ccfaq/unix-faq 
观之 
 
-- 
希望 终有一年春天 我们的子孙会读到  
头条新闻如下 
冬侯鸟小水鸭要北返了  经过淡水河边的车辆 
禁鸣喇叭                                ---- 刘克襄 

BBS水木清华站∶精华区