On 10/2/24 23:56, Alan Mackenzie wrote:
Hello, gentoo.
I was wanting to do a pretty full build of my Emacs working repository.
This involved first purging al *.elc files. The way to do this is
$ find . -name '*.elc' | xargs rm
. But for some reason, I typed
$ find . '*.elc' | xargs rm
. I even carefully checked it before pressing RET. However, press it I
did, instantly deleting all files in my working directory. OUTCH!
So, I fell back on my backup from last Sunday. After about 1½ hours
trial and error, I had my source files as of last Sunday back again,
though git could have been more helpful than it actually is.
Thankfully, I had Emacs open, with all the files modified since Sunday
in buffers. So, I laboriously worked through Emacs's buffer list,
saving those ones I'd since changed.
I lost all my timestamps on the files, and lost all my Emacs backup
files (things ending in ~ which Emacs constantly makes). But my
software builds and runs.
It could have been a lot worse. Boys and girls, don't use
$ find .... | xargs rm
unless you really know what you're doing. And even then, it's probably
better not to. ;-(
It occurred to me fairly quickly after that press of RET that I could
have done well with a COW snapshot facility, something which has been
discussed at length on another recent thread. I even have LVM on my
machine for its RAID capabilities. But I've never bothered before. I
mean "I'm too careful", amn't I? ;-( At least I do a weekly backup,
though.
So, in the end I managed to recover fairly well, thankfully.
No, you don't need a snapshot system - you need a proper backup system
that stores the proper metadata. When I was experimenting with
snapshots (btrfs and moosefs) at different times I lost everything a few
times with filesystem corruption which meant I lost the snapshots too.
Snapshots are NOT safe backups - treat them as a convenient copy ...
BillK