“Rm -rf ~” komutunu geri al?


115

İstemediğim bir klasöre '~' adını verdim, bu yüzden yazdığım komut satırından

rm -rf ~

ve ana klasörümü yanlışlıkla sildim (~ / home / userername dizinine çözümlendiğinden beri). Geriye dönüş yolu var mı yoksa temelde hesabı sıfırdan oluşturmam gerekiyor mu?


18
Hangi dosya sistemi?
Tarnay Kálmán

6
Açıkçası sizlerin mizah anlayışı yok.
Blomkvist

21
Bu doğrudan sorunuzu cevaplamamasına rağmen, rm -rf "~"tırnak işaretleri ile onu genişletmek yerine bu gerçek adı arayacaksınız. Ama yine de onu kullanmaktan korkardım - doğru dir aldığımı doğrulamak lsveya cdilk olarak bir GUI dosya yöneticisinden silmek için bir şey kullanırdım. Belki de önce dir ( mv "~" tilde) ismini değiştirin , doğrulayın ve sonra kaldırın.
Henrik N

2
Gelecek için, rm komut satırında etkileşimli olarak kullanmayın. Çöp kutusu gibi bir yardımcı program kullanın ve siz 1) aynı hatayı tekrar yapamazsınız ve 2) sorun çıkmasına neden olacak kötü bir rm kabuk takma adını kullanamazsınız.
Fred Nurk

9
@HenrikN: ./~ "~" yerine aynı şeyi yapar, ancak aynı zamanda çizgi gibi başlayan ve seçeneklere benzeyen gibi, diğer genel sorunlu dosya adları ile de çalışır.
Fred Nurk

Yanıtlar:


148

Genelde geri dönüşün kolay bir yolu yoktur.

Günlük yedeklemenizden geri yükleyebilirsiniz.


194
Yedekleme konusundaki yorumunuz acımasız ve% 100 puan kazanıyor.
Benjamin Bannier

3
OS X, yedeklemelerin nasıl çalışması gerektiğine ilişkin çubuğu ayarlar (özellikle Zaman Kapsülü ile). Ubuntu ile aynı şeyi nasıl alabileceğinizle ilgili öneriler için maketecheasier.com/… adresine bakın .
Thorbjørn Ravn Andersen

4
@ Thorbjørn Ravn Andersen - Time Machine’in sinir krizi geçirmesi durumu hariç. Zaman makinemi altı ayda iki kez üzerimde bir ucube vardı.
Sahte İsim

Şirket dışı yedekleme harika ve oldukça uygun olabilir. Kullandığım Backblaze 5 $ / bilgisayar / ay (Mac / Windows). Birçok insan Crashplan'ı (Mac / Windows / Linux) sever .
Henrik N,

23
günlük ne?
Luc M

66

Diğerleri ( @RiMMER , @Adam ve @James T gibi ), çoğu dosya sisteminde, verilerinizin çoğunu veya tümünü (belki dosya adları olmadan) kurtarmanın mümkün olduğunu, çünkü verilerin gerçekten sıfırlanmadığını, yalnızca kaldırıldığını belirtir. dosya tablosundan. Bu sadece Linux için değil, aynı şey Windows ve Mac için de geçerlidir.

Ancak, hiç kimse en önemli şeyden bahsetmedi - BİLGİSAYARINIZI KAPATIN. ŞİMDİ. .

Şu anda kullandığınız internet tarayıcısı dahil olmak üzere pek çok program, verileri sabit sürücüye önbelleğe alır ve yaptığınız her şey, bilgisayarınızın takas dosyasına yeniden boyutlandırmasına / yazmasına neden olabilir. Bunların her ikisi de sabit diskteki serbest sektörlere yazacak ve potansiyel olarak değerli verilerinizin üzerine yazacaktır.

Böylece, bilgisayarınızı kapatın, sabit sürücüyü çıkarın ve başka bir bilgisayara yerleştirin. Sabit sürücüyü salt okunur olarak takın ve dosyaları ayrı bir sabit sürücüye kurtarın. İlgilendiğiniz her şeyi kurtardığınızda - ancak yalnızca o zaman - dosyaları orijinal sürücüye geri yazın.


11
Kapatma işlemi bile sabit sürücüye yazabilir. Bilgisayarınızı hemen çıkarmanızı tavsiye etmekte tereddüt ediyorum, çünkü bu kesinlikle işleri daha da kötüleştirebilir, ancak ... verilerin ne kadar önemli olduğuna bağlı olarak, dikkate almak isteyebilirsiniz.
BlueRaja - Danny Pflughoeft

1
Sürücü / işletim sistemi / montaj noktasına bağlı olarak, bilgisayarı kapatmadan, sonra da kapatmadan vb.
Okunaklı

1
killall rmkapatmak yerine.
Fred Nurk

1
Ana dizininizin ne kadar büyük olduğuna ve sabit sürücünüzün ne kadar büyük olduğuna bağlı olarak, verilerinizi içeren ücretsiz sektörlerin üzerine yazma olasılığı oldukça düşüktür.
Mike Speed

Bu yöntemi kullanarak çok zorlanmadan metin dosyalarını kurtarabilirsiniz (içinde ne olduğu hakkında kaba bir fikir edindiğiniz sürece), ancak ikili dosyalar temelde imkansız olacak kadar zordur.
Satanicpuppy

13

Her linux kullanıcısının bir kerede, bu acı verici dersi ilk elden öğrenmesi gerektiğine, aslında yedeklemenin önemini öğrenmenin yanı sıra, ayrıntılara dikkat etmeye ve dikkat etmeye de dikkat ediyorum.

Örneğin, tuhaf görünümlü dosyaları siliyorsanız, önce yan etkileri olmayan ve verilerinizde değişiklik yapmayan bu garip dosyadaki komutları çalıştırabilirsiniz. Mesela kaçtın mı

cd ~

klasörü silmeyi denemeden önce, bunun yerine klasörü ana klasörünüze değil, ~klasörü değiştireceğinize karar verdiniz . Eğer gerçek komutu öğrenmek için yeterli giderme adımlarını kez doğru gerekir cdiçine ~geçmişinden son komutu çekin ve sonra değiştirmek için klasöre, o zaman yukarı ok tuşuna olabilir cdiçin rmve daha sonra ve ancak o zaman klasörü silmeyi deneyin .

Kalıcı herhangi bir işlem yapmadan önce böyle adımlar atmanızı öneririm . Kalıcı veya kusursuz değildir, ancak yan etkileri olan eylemleri gerçekleştirirken bu derece dikkatli olursanız, bu gecikme sürelerini önleme şansınız çok daha yüksektir.


4
Atlamadan önce bak ve lssenden önce rm.
LawrenceC

7

Ext3 dosya sistemini kullanıyorsanız, ext3grep en iyi arkadaşınızdır. Ext3grep kullanımı hakkında iyi bir eğitim (diğerleri arasında) burada bulunabilir .


6

Tek tek dosyaları silmek için testdisk'i kullanmayı deneyebilirsiniz . Bu görünüşte yalnızca ext2 ve NTFS'de çalışır (ancak yine de denemeye değer).

Ext3 veya ext4'ünüz varsa, bilinen dosyayı , photorec kullanarak kurtarabilirsiniz , bu muhtemelen istediğinizden daha fazla kurtarmaya neden olur. Photorec, dosya adı bilgisi olmadan dosyaları kurtarır, böylece dosyalar arasında dolaşmak sıkıcı olabilir.


4

Yeterince büyük bir harici sürücünüz varsa, muhtemelen en güvenli başka seçeneğiniz vardır. Boş alan dahil tüm ev bölümünü depolamak için yeterli alana ihtiyacınız olacaktır.

Bir CD'den önyükleme yapın ve ana sürücüyü hiç takmayın. Harici sürücüyü takın. Ana sürücü bölümünü harici sürücüdeki bir dosyaya yerleştirin. dosyayı bir geridöngü aygıtı olarak takmak, bu görüntü üzerinde geri alma çalışmalarınızı yapar, orijinal dosya sisteminize zarar veremeyeceğinizi bilerek güvende. Dosya sistemine bağlı olarak, denenecek birçok şey olabilir, bazıları potansiyel olarak tahrip edici olabilir.

Bu, bir keresinde Reiser4'ün beta sürümüyle bir kez kurtardı; Dergide yazanların hala mümkün olduğu bir yerde okudum.

Ayrıca ölmekte olan bir sürücüden veri kaydetmek için iyi bir tekniktir.


1
Çoğu günlük FS'de, salt okunur bir bağın bile günlük etkinliklerinin bir parçası olarak veri yazabileceğinden bahseden +1.
sleske,

2

Geri dönüştürülmemiş düğümleri inceleyerek dosyaları kurtarma teknikleri vardır. Silme işleminden sonra dosya sistemine ne kadar çok veri yazarsanız, verilerinizi kurtarmanız o kadar az olasıdır. Kazara bir veri silme işleminden kurtarma için en iyi strateji yedeklemeden geri yükleme yapmaktır.


2
alias rm="rm -i"

Bash kabuğunu kullandığınızı varsayalım (bunu .bashrc dosyanıza koyun, böylece açtığınız yeni mermilere devam eder).

Bu, rm'nin neyi silmek istediğinizi onaylamanızı istemesiyle sonuçlanmalıdır, bu özellikle -rf yaparken iyi olur, ancak komut isteminde ana dizininizin tam yoluna '~' ekleyecektir. Bir ipucunu silmediğiniz bir ipucu '~' ama aslında homedir.

$ rm -rf ~
rm: examine files in directory /nas/users/u12345/unix (yes/no)? n

Bu teknik olarak sorunuza bir cevap değildir, ancak gelecekte böyle bir sorunu önlemenize yardımcı olabilir.

EDIT: Bazı insanlar "rm" komutu ile daha az dikkatli olmanızı sağladığından bu tekniği kullanmaktan vazgeçebilirler. Tecrübelerime göre bu gerçek olmaktan uzak. Gerçekte, takma adın etkisi sizi "rm -rf" yi kullanmaktan caydırmaktır - bildiğiniz gibi, cevaplamak istemediğiniz birçok istemle sonuçlanacağını - ve istemde bulunmamak için "rm -rf "rm komutunu kasıtlı olarak / bin / rm (ya da her neyse) olarak belirtmeniz gerekir. Bu, genel olarak "rm" komutunun çok daha bilinçli ve kasıtlı bir şekilde kullanılmasına yol açar - her zaman rm kullanımına her zaman ihtiyaç duyduğunuzdan, hem sunucunuzda hem de gerçekleşen her şeyde, "rm veya / bin / rm" zihinsel seçimiyle kullanmak zorundasınız. giriş yapmak için. Ve herkesin rm kullanmadan önce düşündüğü bir dünya gerçekten daha güvenli olacaktı!


2
Bulunduğunuz sisteme bağlı. RHEL5 ve OS X 10.6'da en az seçeneği -fgeçersiz kılar -i.
Daniel Beck

Bunu bilmiyordum. YMMV'ye tavsiyemi ekliyorum ve "bunu evde ya da daha önemlisi işyerinde denemeyin"!
aaa90210

9
Bunu yaparsanız, bir gün bu takma adı yerine koyamazsınız - belki başka bir bilgisayarda oturuyorsunuz ya da bir yere girdiniz - ve güvenlik ağına alışkın olan rm'yi kullanacaksınız. Pişman olduğunuz bir şey yapacaksınız.
Fred Nurk

1
@FredNurk Kesinlikle. En iyi bahis, -i'yi kendiniz eklemek veya -f seçeneğini kullanmamaktır.
Arda Xi,

Silinecek bir sürü dosyam olduğunda, ile başladım rm -i my_list_of_files. Sonra CTRL-C kullanıyorum ve komutlarımı değiştirmek için hatırlıyorumrm -rvf my_list_of_files
Luc M

2

Verileriniz için üzgünüm. Başkaları veri probleminizle nasıl başa çıkacağınızı öğrendi, ama işte bir dahaki sefere bir klasör görüldüğünde nasıl başa çıkabileceğinize dair bazı bilgiler ~.

  1. Kim yarattıysa bulun ve bir daha asla yapmadıklarından emin olun.
  2. Kullanmayın -rfveya herhangi deli güçlü argümanlar silme yapmak rm. Bunun yerine, güzel ve yavaş hareket edin ve neler olduğunu görebildiğinizden emin olun. Tilde, ana dizininize girmeden kabukta kaçarak girmek mümkündür. Teoride yapabilirsin rm -rI \~ , ancak bir adım daha ileri gidebilirsin.
    1. Birincisi, cd \~bu klasöre girmek için, belki de pwdorada olup olmadığını kontrol etmek için kullanabilirsiniz . Sen içerideyken, içeriğini kaldır. Yine dikkatli olun, ancak klasörü rf -rI *ve ile temizlemeniz gerekiyorsa temizleyin .*.
    2. Şimdi tekrar yukarı gidin cd ..ve ile dizini kaldırın rmdir \~.

1

Ben sadece cd .saps ve cd dosyaları geri yükleyin. Ancak, işte bunu yapıyorum ve .snapshot dizininin gelip gelmediğini hiçbir fikrim yok. Sanırım belki bir Linux özelliği idi.


1

Kurtarma Araçları - Komut Satırı:

Kurtarma Araçları - Gui:

Bilgiler:

Kişisel deneyimime göre, "UFS Explorer" ve photorec kullanarak verilerimi geri alıyorum

(1) = Açık kaynak değil, ücretsiz değil

(2) = Açık kaynaklı değil, ücretsiz

(3) = Açık kaynak ve ücretsiz

(4) = Ntfs desteği var

(5) = Dizin yapısı özelliği var


-3

rm sonsuza kadar.

Bu şimdi size yardımcı olmasa da, gelecekte rm kullanmayabilir veya kendinizi gerçekten zorlamak için kullanamazsınız, yolunuzda daha önce bulunan, rm adındaki dosyaları başka bir zaman temizlediğiniz bir çöp kutusu klasörüne taşıyan bir komut dosyası ekleyebilirsiniz (izin verme hata yapıp SOL olmamak için).


7
Bununla ilgili tek sorun, rm komutuyla biraz hızlı ve kaybolabilir ve şirketinizin Linux sunucusunda kullanışlı geri alma işlevlerinin olmadığını unutabilirsiniz ... ayy ...
jmort253

2
-1 Bu, aşırı oylanan cevaplarla aynı problemi var (bu yüzden başkasının yorumunu çalacağım): bir gün bu senaryoyu kullanmamış olabilir - belki başka bir bilgisayarda oturuyorsun ya da bir yere girdin - rm'yi güvenlik ağına alışkın olarak kullanacak ve pişman olduğunuz bir şey yapacaksınız.
DMA57361,

@Corey Bunun kötü bir alışkanlığa yol açabileceği konusunda hemfikir olmama rağmen, +1, çünkü bu cevap çok fazla indirilmedi
John Militer,
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.