Jak znaleźć pliki i foldery, które zostały niedawno usunięte w systemie Linux?


23

Mam jeden konkretny folder ( /home/sam/officedocuments), który zawiera setki folderów i plików. Myślę, że przez pomyłkę usunąłem niektóre pliki i foldery, ale nie jestem pewien.

Jak znaleźć pliki / foldery:

  • usunięte niedawno w systemie Linux?
  • zmieniłeś ostatnio w Linuksie?

Chcę tylko wiedzieć, które pliki i foldery zostały usunięte. Odzyskiwanie usuniętych plików i folderów nie jest dla mnie ważne.

System operacyjny: CentOS


1
Powinieneś powiedzieć nam, jakiego systemu plików używasz. Na przykład z ext2, ext3 i ext4 Prawdopodobnie można użyć ext3grepnarzędzia do wyszukiwania informacji o usuniętych plikach. Przy niektórych skryptach powinno być możliwe stworzenie prostej aplikacji, która wyświetla listę usuniętych plików w oparciu o określony katalog. Narzędzia te wymagają jednak surowego dostępu do dysku i jako takie są wyjątkowo niebezpieczne, jeśli nie są właściwie używane ( nieblokujące operacje tylko do odczytu powinny być całkowicie bezpieczne, jeśli pamiętasz, że zapis na dysk w tym samym czasie może spowodować, że bieżąca operacja zwróci uszkodzone / niepoprawne dane ).
GoFundMonica - codidact.org

Odpowiedzi:


3

… Ostatnio zmieniony w Linuksie?

Służy finddo wyszukiwania według czasu modyfikacji. Na przykład, aby znaleźć pliki dotknięte w ciągu ostatnich 3 dni:

find /home/sam/officedocuments -mtime -3

Dla „starszych niż 3 dni” użyj +3.

… Niedawno usunięte w systemie Linux?

Niemal niemożliwe. Po usunięciu pliku po prostu go nie ma. W większości systemów nie jest to nigdzie rejestrowane.


Dzięki. Przez 3 dni muszę używać 3... tego, czego potrzebuję przez ostatnie 30minuty?
Sumit Gupta

Czy Linux zawsze prosi o potwierdzenie przed usunięciem dowolnego pliku / folderu?
Sumit Gupta

16
Niemal niemożliwe” To jest po prostu złe i dlatego muszę to głosować. Czasy usuwania są przechowywane w niektórych systemach plików, przykładem takiego fs jest ext3system plików. ext3grep może pomóc podczas polowania. Mam plik superuser.com/a/433785/132604, który zawiera pewne informacje i łącza do narzędzi, które można wykorzystać do znalezienia ( ewentualnie odzyskania ) usuniętych plików i informacji o nich. Podczas usuwania pliku w większości systemów plików nie jest on faktycznie usuwany, ale jest oznaczany jako miejsce, które można zastąpić na żądanie.
GoFundMonica - codidact.org

Możesz być w stanie przywrócić pliki z kopii zapasowej i porównać listę tych plików z plikami w systemie plików. To dałoby listę brakujących i nowo utworzonych plików. Odpowiedź Grawity już pokazuje, że możesz filtrować na czas, więc możesz ograniczyć to tylko do usuniętych plików.
Hennes,

11

Prawdopodobnie powinieneś zainstalować Inotify Tools . następnie możesz użyć inotifywaitpolecenia, aby nasłuchiwać zdarzeń mających miejsce w określonym katalogu.

W szczególności, jeśli chcesz oglądać usunięte pliki i foldery, użyj tego

inotifywait -m -r -e delete dir_name

i zaloguj to wyjście w jakimś pliku.

Mam nadzieję, że to rozwiąże twój problem


1
Brzmi jak najlepsze podejście do tego. Jest obiecujący cli-app / daemon o nazwie iwatch, który możesz chcieć dołączyć do swojej odpowiedzi. +1 za użycie odpowiednich narzędzi do rozwiązania problemu.
GoFundMonica - codidact.org

ravi, @SampoSarrala - czy ma to zastosowanie, jeśli chcę oglądać pliki w /katalogu głównym, biorąc pod uwagę montowanie / odmontowywanie dysków? Sądzę, że w takim przypadku jedyną sensowną rzeczą dla prowadzenia dziennika usuwania byłby moduł jądra, który mógłby się podłączyć unlink(patrz stackoverflow.com/questions/8588386/... ); man inotifywaitstwierdza również : „--recursive: Ostrzeżenie: ... ta opcja podczas oglądania ... dużego drzewa, może to zająć sporo czasu. Ponadto, ..., zostanie osiągnięta maksymalna liczba zegarów inotify na użytkownika. domyślnie maksimum to 8192; "
sdaau

@ sdaau dmesg [| tail]powinien pokazać ci [ostatnie] montowania / odmontowywania, jeśli o to pytasz.
SeldomNeedy

Zastanawiam się, czy istnieje sposób, aby dowiedzieć się, który proces usunął plik (powiedzmy zadanie crona), jeśli dotyczy. Mają przypadek plików, które tajemniczo znikają ...
Nagev

0

Linux zasadniczo nie pyta o potwierdzenie przed usunięciem plików, zakładając, że używasz rmz wiersza poleceń.

Aby znaleźć pliki zmodyfikowane w ciągu ostatnich 30 minut, użyj touch --date="HH:MM" /tmp/referencedo utworzenia pliku o nazwie referencja ze znacznikiem czasu sprzed 30 minut (gdzie GG: MM odpowiada 30 minut temu). Następnie użyj, find /home/sam/officedocuments -newer /tmp/referenceaby znaleźć pliki nowsze niż referencja.

Jeśli pliki zostały usunięte za pomocą narzędzia GUI, mogą one nadal znajdować się w „koszu”. To zależy od tego, czego używasz w środowisku pulpitu. Jeśli korzystałeś rmz linii poleceń, wypróbuj jedno z narzędzi wymienionych w tej odpowiedzi . (Hat tip do @Sampo dla tego linku).


Tylko nie mów „odszedł na zawsze” ... zobacz komentarze do innej odpowiedzi. Teraz czuję się tak: xkcd.com/386 :)
GoFundMonica - codidact.org
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.