How to recover the data "accidentally" deleted by a snap command? Just look inside
Now onto the long version of the same answer.
One a bright summer day I needed to do a quick test of something. I just needed to uninstall Firefox for it. Only temporary.
I already new that
sudo apt remove firefox won't work, because Firefox is a snap application in 22.04. So I did
sudo snap remove firefox and watched snapd clear up all the data.
The test succeeded and I wanted to check something in my user profile before installing the deb-packaged Firefox and then it hit me. The profile was gone.
Snaps to do not keep the user's home data in the user's home folder. Because that would've been weird, right? And all of the data was gone. The command above deleted all of my profile without any warning.
I installed the Firefox from Mozilla's PPA and surely it was a clean install, as if I have never used Firefox on this PC at all.
After just a bit of despair, I decided to check the snapshots. The snapshots are stored inside
/var/lib/snapd/snapshots/. A directory a normal user can not even browse. Because... reasons?
sudo su helps. And here it is, a promising looking 1Gb of data in
firefox_101.0-2_1406.zip, which contains a few files, including a
lex.tgz, which in turn contains a few folders,
and finally there a familiar path
.mozilla/firefox with the
profiles.ini and all the other files. So, simply copying it over into its proper location is the way to restore the "deleted" profile.
Fun fact. If you force-shutdown the PC during the
snap remove operation, it gets stuck in a half-removed state. And any attempt to do something with it will result in
$ sudo snap remove firefox error: snap "firefox" has "remove-snap" change in progress
To get out of this state, you need
snap changes and then
sudo snap abort 67 and a lot of patience.
To summarize everything listed above, I could finally state that I have plenty of reasons to not like the SnapD at all. I have tried it. I will steer as far away from it going forward as I can.