Puncte:-1

Director de lucru șters spontan

drapel jp

Pe Ubuntu 20.04.3 LTS, lucram în nvim în bash. Aveam mai multe file de terminal deschise. Acolo a fost un .git directorul din directorul de lucru. La un moment dat, după ce am închis o filă de terminal, am observat că directorul în care lucram nu mai există.

Am verificat dacă am mutat accidental directorul rulând sudo find / -name "some-file.txt" din directorul principal, unde unele-fișier.txt este un nume de fișier pe care sunt sigur că am fost în directorul lipsă.

Am verificat de două ori istoricul bash și după ultimul git commit și git rebase -i HEAD --root Am făcut, doar comenzile care indică căutarea mea pentru directorul pierdut sunt acolo. Îmi amintesc că în rebaza interactivă am redenumit commit-ul inițial. Dacă am greșit ceva acolo (ca în: cădere brusca toate comiterile, de exemplu), acest lucru nu ar explica tot directorul care trebuie șters.

Știu, aceasta este o întrebare foarte generală. Dar din cauza naturii problemei nu pot oferi mai multe detalii sau reproduc bug-ul.

Care ar putea fi motivul pentru asta? (De câte ori încerc rm -r un director cu a .git depozit care are comiteri, mi se cere să confirm eliminarea comitărilor rm: eliminați fișierul obișnuit protejat la scriere.... Acest lucru nu se întâmplă când rulez această comandă ca sudo, dar sunt destul de sigur că nu mi-am introdus parola. Pe lângă istoricul bash, acest lucru mă face să cred că nu am șters singur tot directorul accidental.)

Ce aș putea face pentru a-mi restabili datele? Nu am împins și am reușit să stochez fișierele în buffer-urile vim deschise, pentru a răspunde deja la cele mai evidente părți.

muru avatar
drapel us
Este posibil să fi mutat accidental directorul în altă parte.
guiverc avatar
drapel cn
Nu uitați că dacă rulați o comandă cu `sudo` nu vi se va cere o parolă dacă încă vă aflați în limita de timp *comandă ridicată* anterioară la acel terminal unde a fost folosită o comandă `sudo`. .. Nu ați oferit niciun sistem de operare sau detalii de lansare care să permită un răspuns mai precis (de exemplu, menționarea dvs. de a nu furniza o parolă poate să nu fi fost necesară pentru un `sudo`, deși există produse Ubuntu unde parola este necesară instantaneu, dar nu ai fost specific)
jonathan.scholbach avatar
drapel jp
@guiverc Mulțumesc pentru comentariu, am adăugat lansarea Ubunutu acum. Lipsesc mai multe detalii care ar putea fi de ajutor?
muru avatar
drapel us
@jonathan.scholbach ``sudo grep "seome-file.txt" \``? Presupunând că v-ați referit la `/`, care caută șirul `seome-file.txt` în directorul `/`, ceea ce ar fi totuși o eroare dacă nu îi spuneți lui `grep` să recurgă. Și chiar și atunci ar verifica în continuare conținutul, nu numele fișierului. Nu are sens ca o confirmare a ceva.
jonathan.scholbach avatar
drapel jp
@muru Ai dreptate, scuze, mai întâi am avut niște greșeli de scriere și în al doilea rând am făcut confuzii `grep` și `find`. Nu am găsit nici fișierul cu `find`.
muru avatar
drapel us
De asemenea, comanda ta find nu face ceea ce crezi tu că face
Puncte:0
drapel it

GĂSIȚI CAUZA:

nvim vine, de asemenea, cu mai multe comenzi (și extensii preinstalate) care pot face acest lucru. Dacă încercați să aflați cauza ștergerii, verificați nvim busteni de asemenea.

RECUPERARE DATE:

Ai menționat o .git director. Directorul tău avea o telecomandă git? Dacă da, doar clonează-l în local și problema rezolvată.

Dacă nu, verificați un director numit „.trash-{$USER_ID}” dacă originalul a fost pe o unitate externă montată sau .local/share/Trash in caz contrar. Poate fi acolo (cu excepția cazului în care rm a fost folosit pentru a șterge. În acest caz, cu excepția cazului în care faceți o copie de rezervă a sistemului dvs. de fișiere, probabil că acesta a dispărut.)

PROTECȚIA SISTEMULUI ÎMPOTRIVA ACESTEI PROBLEME:

Acesta este motivul pentru care veți vedea atât de des utilizatori aici recomandând backup-uri programate frecvente. Eu personal folosesc o combinație de Schimbare de timp și rsync.

Schimbare de timp poate fi descărcat prin apt. Este în primul rând pentru a face copii de rezervă ale fișierelor de sistem și a configurației și vă permite să setați un program de backup recurent. De asemenea, puteți rula copii de rezervă manuale în cazurile în care sunteți pe cale să faceți ceva riscant.

rsync vine cu Ubuntu. Este doar un instrument de bază de linie de comandă pentru a copia fișiere și directoare într-o rețea (deși poate face acest lucru și local.)

Rsync nu este conceput în primul rând ca un program de rezervă de sine stătător, cel puțin nu în felul în care Schimbare de timp sau Weresync sunt. Cu toate acestea, este suficient de simplu și de eficient pentru a face copii de rezervă încât multe dintre soluțiile mai cuprinzătoare îl folosesc intern în acest scop.

Dezavantajul rsync este că nu există "Setați-l și uitați-l" Cu toate acestea, managerii de pachete Ubuntu oferă multe mai multe opțiuni de backup, fiecare cu propriile sale particularități.

Poate fi un clișeu în acest moment să recomandați o strategie de backup agresivă, dar după cum puteți vedea, este un clișeu dintr-un motiv întemeiat.

jonathan.scholbach avatar
drapel jp
În ceea ce privește repo la distanță: După cum am spus, nu am împins. În ceea ce privește backup-urile: execut backup-uri o dată pe săptămână. Am pierdut munca de o zi.
Nate T avatar
drapel it
Pierderea muncii unei zile încă e nasol, dar ar fi putut fi mult mai rău. În ceea ce privește cauza, în cele din urmă, doar tu ai resursele pentru a-l da seama. Există o mie de moduri diferite prin care datele pot fi șterse. Ar fi putut fi un program bg necinstiți care rulează root sau un „SIGSEGV”, din câte știm. Acestea fiind spuse, vă garantez că răspunsul este într-un fișier jurnal undeva pe sistemul dumneavoastră. Btw, ți-ai verificat încă coșul de gunoi? Atâta timp cât nu a fost `rm`ed (ca în apelul de sistem, nu în utilitarul cli), ar trebui să îl puteți găsi acolo

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.