undo a rm -rf

Joshua Oreman oremanj at webserver.get-linux.org
Sat Jun 7 20:20:50 PDT 2003


On Sat, Jun 07, 2003 at 04:18:02PM -0700 or thereabouts, Joshua Oreman seemed to write:
> On Sat, Jun 07, 2003 at 05:45:20PM +0800 or thereabouts, Robert Storey seemed to write:
> > On Fri, 6 Jun 2003 21:36:46 -0700
> > Joshua Oreman <oremanj at www.get-linux.org> wrote:
> > 
> > > On Sat, Jun 07, 2003 at 12:15:50AM -0400 or thereabouts, David Loszewski
> > > seemed to write:
> > > > I just did a rm -rf and forgot the *.png portion
> > > > that I wanted on it, lol, 2 years of using freebsd
> > > > and I've never done anything this stupid.  Is there
> > > > a way to get my data back? Please respond to this email address.
> > 
> > On Linux, I've installed Libtrash, a "trashcan" which works even at the console. I think it's just a series of scripts, but it works superbly. I tried installing it on FBSD, but it failed to compile, exiting with this error message:
> > 
> >   /usr/bin/ld: cannot find -ldl
> >   *** Error code 1
> > 
> > If I knew what I was doing, I'd surely try to port Libtrash to FBSD. Sadly, I'm not a knowledgeable developer, just a dumb user. If anyone is interested:
> > 
> >   http://www.m-arriaga.net/software/libtrash/
> 
> That's me, I'm interested (and a knowledgable quasi-developer :-)
> To get it to compile, remove all occurences of -ldl from src/Makefile.
> However, then it coredumps on any open() call and doesn't move stuff
> to the trash :P
> I'm working on it.

Done.
Get it from http://64.161.78.226/libtrash-fbsd.tgz.
It's still pretty unstable (e.g. don't try running Mutt or perl or Emacs with it)
but hey, it works. Any other developer want to work on this?

NOTE: Since the base system utilities (rm, cp, mv, etc.) are statically linked,
      libtrash will NOT work with them! You must use a dynamic-linked version,
      e.g. like so:
      # gcc -g -o /usr/bin/dynrm /usr/src/bin/rm/rm.c
      # gcc -g -o /usr/bin/dynmv /usr/src/bin/mv/mv.c
      # gcc -g -o /usr/bin/dyncp /usr/src/bin/cp/*.c
      And add these lines to the end of your shell's startup file
      (~/.profile for sh, ~/.cshrc for csh, ~/.bashrc for bash, ~/.zshrc for zsh):
      --snip--
      alias rm=dynrm
      alias cp=dyncp
      alias mv=dynmv
      --snip--

NOTE #2: I am not maintaining this; I'm just putting it out there so maybe someone
         else can keep hacking on it.

Hope this helps!
-- Josh

> 
> -- Josh
> 
> > 
> > regards,
> > Robert
> > _______________________________________________
> > freebsd-questions at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> > To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"


More information about the freebsd-questions mailing list