Hangi dosya ve klasörlerin son zamanlarda Linux'ta silindiğini nasıl bulabilirim?


23

/home/sam/officedocumentsYüzlerce klasör ve dosya içeren belirli bir klasör ( ) yaşıyorum. Bazı dosyaları ve klasörleri yanlışlıkla sildim ancak emin değilim.

Hangi dosyaların / klasörlerin nasıl bulunduğunu bulma:

  • Linux'ta yakın zamanda silindi?
  • Linux'ta son zamanlarda değişti?

Sadece hangi dosya ve klasörlerin silindiğini bilmek istiyorum. Silinen bu dosyaları ve klasörleri kurtarmak benim için önemli değil.

İşletim Sistemi: CentOS


1
Bize hangi dosya sistemini kullandığınızı söylemelisiniz. Örneğin, ext2, ext3 ve ext4 ile ext3grepsilinmiş dosyalar hakkında bilgi edinmek için muhtemelen yardımcı programı kullanabilirsiniz . Bazı komut dosyalarında, silinen dosyaları belirli bir dizine göre listeleyen basit bir uygulama bir araya getirilebilir. Bununla birlikte, bu yardımcı programlar diske ham erişime ihtiyaç duyar ve bu nedenle, doğru kullanılmadığı takdirde son derece tehlikelidir ( aynı anda diske yazmanın mevcut işlemin bozuk / yanlış veriye dönmesine neden olabileceğini unutmamanız durumunda, salt okunur olmayan işlemler tamamen güvenli olmalıdır ).
GoFundMonica - codidact.org

Yanıtlar:


3

… Son zamanlarda Linux'ta değişti mi?

findDeğiştirme zamanına göre arama yapmak için kullanın . Örneğin, son 3 gün içinde dokunulan dosyaları bulmak için:

find /home/sam/officedocuments -mtime -3

"3 günden eski" için kullanın +3.

… Son zamanlarda Linux'ta silindi mi?

Neredeyse imkansız. Bir dosya silindiğinde, sadece gider. Çoğu sistemde, bu hiçbir yere kaydedilmez.


Teşekkürler. 3 gün boyunca kullanmam gerek 3... son 30dakika kullanmam gerekenler ?
Sumit Gupta,

Herhangi bir dosya / klasörü silmeden önce Linux her zaman onay ister mi?
Sumit Gupta,

16
“Neredeyse imkansız” Bu sadece yanlış ve bu nedenle bunu reddetmek zorundayım . Silme süreleri bazı dosya sistemlerinde saklanır, bu tür fs örnekleri ext3dosya sistemidir. ext3grep avlanırken yardımcı olabilir. Bende superuser.com/a/433785/132604 (bulmak için kullanılabilecek yardımcı programlar bazı bilgiler ve bağlantılar bulunmaktadır muhtemelen çok kurtarmak ) silinen dosya ve onlar hakkında bilgi. Dosyayı sildiğinizde, çoğu dosya sisteminde, aslında kaldırılmaz, ancak talep üzerine yazılabilecek bir alan olarak işaretlenir.
GoFundMonica - codidact.org

Dosyaları bir yedekten geri yükleyebilir ve bu dosyaların bir listesini dosya sistemindekilerle karşılaştırabilirsiniz. Bu, eksik ve yeni oluşturulan dosyaların bir listesini verir. Grawity'nin cevabı zaten zamanında filtreleyebildiğinizi gösteriyor, bu nedenle bunu yalnızca silinen dosyalarla sınırlayabilirsiniz.
Hennes

11

Muhtemelen Inotify Tools'u yüklemelisin . daha sonra inotifywaitbelirtilen dizinde meydana gelen olayları dinlemek için komutu kullanabilirsiniz .

Özellikle silinmiş dosyaları ve klasörleri izlemek istiyorsanız, bunu kullanın.

inotifywait -m -r -e delete dir_name

ve bu çıktıyı bir dosyaya kaydedin.

Umarız bu sorununuzu çözer


1
Bunun için en iyi yaklaşım gibi geliyor. Cevabınıza eklemek isteyebileceğiniz iwatch adında umut verici bir cli-app / daemon var . Problemi çözmek için doğru araçları kullanmak için +1.
GoFundMonica - codidact.org

ravi, @SampoSarrala - Kökteki dosyaları izlemek /, sürücüleri takmak / sökmek için hesaba katmak istersem uygulanabilir mi? Sanırım, bu durumda bir silme günlüğünü tutmak için uygun olan tek şey, bağlanabileceği bir çekirdek modülü olacaktır unlink(bkz. Stackoverflow.com/questions/8588386/… ); ayrıca şunu man inotifywaitbelirtir: "- özyinelici: Uyarı: ... bu seçenek izlerken ... büyük bir ağaç, oldukça zaman alabilir. Ayrıca, ..., kullanıcı başına maksimum inotify saati miktarına ulaşılır. varsayılan maksimum 8192; "
sdaau

@sdaau dmesg [| tail]size [en son] bağları göstermeli / çıkarmayı göstermeli, eğer sorduğun buysa.
SeldomNeedy

Uygulanabiliyorsa, hangi işlemin dosyayı sildiğini (bir cron işi deyin) bulmanın bir yolu olup olmadığını merak ediyorum. Gizemli bir şekilde kaybolan dosyalar var ...
Nagev

0

Linux genellikle rmkomut satırından kullandığınızı varsayarak, dosyaları kaldırmadan önce onay istemez .

Son 30 dakikada değiştirilen dosyaları bulmak için touch --date="HH:MM" /tmp/reference, 30 dakika öncesinden bir zaman damgasına referans olarak adlandırılan bir dosya oluşturmak için kullanın (burada HH: MM 30 dakika öncesine karşılık gelir). Ardından find /home/sam/officedocuments -newer /tmp/referencereferanstan daha yeni dosyalar bulmak için kullanın .

Bir GUI aracı kullanarak dosyaları sildiyseniz, hala bir tür "çöp tenekesi" içinde olabilirler. Masaüstü ortamı için ne kullandığınıza bağlıdır. Eğer kullanılırsa rmkomut satırından sonra belirtilen araçlardan birini deneyin bu cevap . (Hat, bu bağlantı için @Sampo’ya bahşiş verir.)


Sadece "sonsuza dek gitti" deme ... başka bir cevapla ilgili yorumları gör. Şimdi böyle hissediyorum: xkcd.com/386 :)
GoFundMonica - codidact.org 08:13
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.