Yanıtlar:
Linux (diğer birlikler gibi) yerel olarak geri alma özelliği sağlamaz. Felsefe, gitmişse gitmiş olmasıdır. Önemliyse, yedeklenmiş olması gerekirdi.
Eski sürümlerin kopyalarını otomatik olarak tutan bir sigorta dosya sistemi vardır: tüm iyi dağıtımlarda bulunan copyfs . Tabii ki, bu çok fazla kaynak kullanabilir.
Bu tür kazalara karşı korunmanın en iyi yolu versiyon kontrol sistemi kullanmaktır (cvs, çarşı, darcs, git, mercurial, yıkılma, ...). Öğrenmesi biraz zaman alır, ancak orta ve uzun vadede çok fazla para öder.
Ne yazık ki hayır.
-iseçeneğin rmvarsayılan olarak etkin olmasını bile sevmem . Unix sistemlerim elimi tutmamalı.
Hayır, hiçbir Unix'te büyülü bir geri dönüş yoktur. Unix, ne yaptığınızı bildiğinizi varsayar. Geri Al desteği için bir VCS kullanın (metin editörünüzde de yerleşiktir).
Çoğu dosya sistemi şeffaf bir şekilde yapabilme yeteneğine sahip değildir.
Mac ve Windows'taki zaman makinesi ve sistem geri yükleme işlemi yalnızca yedekleme / değiştirme kontrol sistemleridir.
Komut satırında geri alma yoktur. Ancak, komutları rm -ive olarak çalıştırabilirsiniz mv -i. Bu sizi "emin misiniz?" Diye soracaktır. sorguyu yürütmeden önce soru.
Ayrıca bir başlangıç komut dosyasına bir takma ad eklemek de mümkündür (örn. ~/.bashrcVeya /etc/bash.bashrc):
alias remove='rm -i'
alias move='mv -i'
Düzenleme: aşağıdaki önerilere göre, varsayılan komutları takma adıma verdiğim tavsiyeyi kaldırdım. Bunun yerine, şimdi yeni komutları tanıtır).
mv -isadece bir dosyanın üzerine yazacağı zaman sorar (bu yararlı ve iğrenç olmayan bir şeydir). Aynı damarda alias cp='cp -i'.
Linux / Unix sistemlerinin geri alınmamasının nedeni, çoğu dosya sisteminin bilgilerini kaydetme biçiminden kaynaklanmaktadır. Dosya meta bilgileri, diskin geri kalanında bulunan inode'lara referanslarla diskin önünde saklanır. Genellikle, çoğu dosya sistemi bu meta alandaki bir dosyaya 10 blok atar. İlk 7, ilk 7 düğüme atıfta bulunur. 8'inci ve 9'uncu, inode listelerine (iki kat bağlantılı bloklar) ve 10'uncu liste bir liste listesine (üçlü bağlantılı bloklar) gider. Bu, dosya sisteminden dosya sistemine (ext4, jfs, xfs, vb.) Değişmektedir, ancak bu blok listeleri genellikle 2GB ile birkaç TB arasında herhangi bir yerdeki dosya boyutlarına hitap edebilmektedir.
Ancak, tüm bu bilgiler diskin önünde saklandığından, bir dosya silindiğinde, diskteki inode'lara ait oldukları meta verilere başvurma yolu yoktur. Bunun aksine, FAT32 ve NTFS, bazı başlık bilgilerinin dosyaları kendileri ile birlikte saklar ve hangi blok kümesinin ait olduğunu tanımlamayı kolaylaştırır (bu alan henüz yeni dosyalar tarafından geri kazanılmadığı sürece). Linux çalışmasında, bir şeyi sildiğinizde, hemen hemen her zaman verimlilik için yeni verilerle hemen üzerine yazan ilk şeydir.
Gerçekten bir geri alma özelliği istiyorsanız, kaynak kontrolünü kullanın. Subversion aslında tek bir kullanıcı makinede çok iyi çalışıyor. Ev sistemimdeki tüm kişisel dosyalarımı kontrol etmek için kullanıyorum. Afet, haydut bir komut dosyası veya bir komut satırı yazım hatası isabet edene kadar fazlaca görünüyor.
rm -r .. ;)
rm -r project.git. Neyse ki, uzak bir sunucuda gerçekleşmesi muhtemel olmayan başka bir sürümde
rm -r .. Gerçekten aptalım.
.Bashrc dosyama eklemek istediğim bir şey, copy ve remove işlevidir. Gibi bir şey:
cprm(){
cp -p $1 ~/deleted/$1
rm $1
}
Fakat cprm yazmayı alışkanlık haline getirmemelisiniz.
Açıkçası, sınırlı bir disk alanı varsa, silinen alanın üzerinde tutmanız gerekir.
"$1".
GitFS, diffsürümler arasında otomatik olarak hesaplanan ve bunlar arasında geri yükleme / göz atmaya izin veren sigorta tabanlı bir dosya sistemidir .
Web sayfası: https://www.presslabs.com/gitfs