Bagaimana menemukan file dan folder mana yang baru-baru ini dihapus di Linux?

23

Saya memiliki satu folder tertentu ( /home/sam/officedocuments) yang memiliki ratusan folder dan file. Saya pikir saya menghapus beberapa file dan folder secara tidak sengaja tetapi saya tidak yakin.

Cara menemukan file / folder mana yang:

  • baru-baru ini dihapus di Linux?
  • berubah baru-baru ini di Linux?

Saya hanya ingin tahu file dan folder mana yang dihapus. Memulihkan file dan folder yang dihapus itu tidak penting bagi saya.

OS: CentOS

Sumit Gupta
sumber
1
Anda harus memberi tahu kami sistem file apa yang Anda gunakan. Misalnya dengan ext2, ext3 dan ext4 Anda mungkin bisa menggunakan ext3greputilitas untuk mencari tahu informasi tentang file yang dihapus. Dengan beberapa skrip, aplikasi sederhana yang mungkin berisi daftar file yang dihapus berdasarkan direktori tertentu harus dimungkinkan. Namun utilitas ini memerlukan akses mentah ke disk dan karenanya sangat berbahaya jika tidak digunakan dengan benar ( operasi hanya baca yang tidak menghalangi harus sepenuhnya aman jika Anda ingat bahwa menulis ke disk pada waktu yang sama dapat menyebabkan operasi saat ini mengembalikan data yang rusak / salah ).
GoFundMonica - codidact.org

Jawaban:

3

... baru-baru ini diubah di Linux?

Gunakan finduntuk mencari berdasarkan waktu modifikasi. Misalnya, untuk menemukan file yang disentuh dalam 3 hari terakhir:

find /home/sam/officedocuments -mtime -3

Untuk "lebih dari 3 hari", gunakan +3.

... baru-baru ini dihapus di Linux?

Sangat tidak mungkin. Ketika file dihapus, itu hilang begitu saja. Pada kebanyakan sistem, ini tidak dicatat di mana pun.

grawity
sumber
Terima kasih. Selama 3 hari, saya harus menggunakan 3... apa yang harus saya gunakan untuk 30menit terakhir ?
Sumit Gupta
Apakah Linux selalu meminta konfirmasi sebelum menghapus file / folder apa pun?
Sumit Gupta
16
"Sangat tidak mungkin" Ini benar-benar salah dan karena ini saya harus menurunkan ini. Waktu penghapusan disimpan di beberapa sistem file, contoh dari fs tersebut adalah ext3sistem file. ext3grep mungkin membantu saat memburu. Saya mendapatkan superuser.com/a/433785/132604 yang memiliki beberapa informasi dan tautan ke utilitas yang dapat digunakan untuk menemukan ( mungkin memulihkan juga ) file yang dihapus dan informasi tentang mereka. Ketika Anda menghapus file, di sebagian besar sistem file, itu sebenarnya tidak dihapus tetapi ditandai sebagai ruang yang bisa ditimpa dalam permintaan.
GoFundMonica - codidact.org
Anda mungkin dapat memulihkan file dari cadangan dan membandingkan daftar file-file tersebut dengan yang ada di sistem file. Itu akan menghasilkan daftar file yang hilang dan baru dibuat. Jawaban Grawity sudah menunjukkan Anda dapat memfilter tepat waktu, sehingga Anda dapat membatasi itu hanya untuk file yang dihapus.
Hennes
11

Anda mungkin harus menginstal Inotify Tools . maka Anda dapat menggunakan inotifywaitperintah untuk mendengarkan acara yang terjadi untuk direktori yang ditentukan.

Khususnya jika Anda ingin menonton file dan folder yang dihapus gunakan ini

inotifywait -m -r -e delete dir_name

dan catat output ini di beberapa file.

Semoga ini bisa menyelesaikan masalah Anda

ravi
sumber
1
Kedengarannya seperti pendekatan terbaik untuk ini. Ada cli-app / daemon yang menjanjikan bernama iwatch yang mungkin ingin Anda sertakan dalam jawaban Anda. +1 untuk menggunakan alat yang tepat untuk menyelesaikan masalah.
GoFundMonica - codidact.org
ravi, @SampoSarrala - apakah ini berlaku jika saya ingin menonton file di /root, dengan mempertimbangkan pemasangan / pelepasan drive? Saya kira, dalam hal itu satu-satunya hal yang layak untuk menyimpan log penghapusan adalah modul kernel yang akan terhubung unlink(lihat stackoverflow.com/questions/8588386/… ); juga man inotifywaitmenyatakan: "- rekursif: Peringatan: ... opsi ini sambil menonton ... pohon besar, mungkin butuh waktu cukup lama. Juga, ..., jumlah maksimum jam tangan tidak sah per pengguna akan tercapai. default maksimum adalah 8192; "
sdaau
@sdaau dmesg [| tail]seharusnya menunjukkan kepada Anda mount / unmount [baru-baru ini], jika itu yang Anda tanyakan.
SeldomNeedy
Saya ingin tahu apakah ada juga cara untuk mengetahui proses mana yang menghapus file (katakanlah tugas cron) mana yang berlaku. Ada kasus file menghilang secara misterius ...
Nagev
0

Linux biasanya tidak meminta konfirmasi sebelum menghapus file, dengan asumsi Anda menggunakan rmdari baris perintah.

Untuk menemukan file yang dimodifikasi dalam 30 menit terakhir, gunakan touch --date="HH:MM" /tmp/referenceuntuk membuat file yang disebut referensi dengan cap waktu dari 30 menit yang lalu (di mana HH: MM berhubungan dengan 30 menit yang lalu). Kemudian gunakan find /home/sam/officedocuments -newer /tmp/referenceuntuk menemukan file yang lebih baru daripada referensi.

Jika Anda menghapus file menggunakan alat GUI, mereka mungkin masih dalam semacam "tempat sampah". Itu tergantung pada apa yang Anda gunakan untuk lingkungan desktop. Jika Anda menggunakan rmdari baris perintah, maka cobalah salah satu utilitas yang disebutkan dalam jawaban ini . (Kiat ujung ke @Sampo untuk tautan itu.)

bstpierre
sumber
Hanya saja jangan katakan "hilang selamanya" ... lihat komentar pada jawaban lain. Sekarang saya merasa seperti ini: xkcd.com/386 :)
GoFundMonica - codidact.org