Terminal üzerinden Linux'ta dosya nasıl silinir
Terminalde bir dosyayı silmek için rm kullanın: rm dosya_adi. Dizinler için — rmdir (boş olanlar) veya rm -r. Yalnızca dosyaya değil, dizine ait izinleri de dikkate alın ve zorlayıcı komutları çalıştırmadan önce güvenli seçenekleri (rm -i, trash-cli, /tmp içine mv) tercih edin.
Temel rm komutları ve örnekler
rm, dosyaları çöp kutusuna taşımadan siler. Sık kullanılan seçenekler:
- rm dosya.txt — dosyayı sil.
- rm -i dosya.txt — silmeden önce onay iste.
- rm -v dosya.txt — silinen dosyaları göster.
- rm -r dizin — dizini ve içeriğini özyinelemeli olarak sil.
- rm -rf dizin — özyinelemeli ve zorlayıcı (soru sormadan) — tehlikeli.
- rmdir bos_dizin — yalnızca boş dizini sil.
Örnekler:
rm document.txt
rm -i *.log # her birinden önce onaylayın
rm -r project_folder
rm -rf old_backups # TEHLİKELİ: yolu kontrol edin
sudo rm -rf / veya benzeri komutları ne yaptığınızı tam anlamadan asla çalıştırmayın: sistemi tamamen bozabilirsiniz.
Erişim izinleri ve silmeyi gerçekten etkileyen şeyler
Silme işlemi sırasında dosyanın kendisine değil, içinde bulunduğu dizinin izinleri önemlidir:
- Bir dosyayı silebilmek için üst dizinde yazma (w) izniniz ve erişim için çalıştırma (x) izniniz olmalıdır.
- Dosya izinleri (rw-) içeriğin değiştirilmesini etkiler, ancak dosyanın dizinden silinip silinemeyeceğini belirlemez. Kontrol ve düzeltme:
ls -l file.txt # dosya izinleri ve sahibi
ls -ld . # geçerli dizinin izinleri
sudo chown $USER file.txt # gerekirse sahibini değiştir
chmod u+w file.txt # sahibine yazma izni ekle (nadiren gerekir)
İzniniz yoksa sudo kullanabilirsiniz, ancak bunu dikkatli uygulayın — özellikle sistem dizinleri için.
rm için güvenli alternatifler
- Onay almak için takma ad (alias) kullanın: ~/.bashrc dosyasına şunu ekleyin
alias rm='rm -i'
- Silmek yerine /tmp içine taşıyın: mv dosya.txt /tmp/ — hızlıca geri alınabilir.
- trash-cli (Debian/Ubuntu'da: sudo apt install trash-cli) dosyaları çöp kutusuna gönderir, buradan geri yüklenebilirler: trash-put dosya.txt ve trash-restore.
- Toplu işlemler için önce dry-run yapın (örneğin ls desen veya test dizini), ardından silme işlemini gerçekleştirin.
Betiklere --preserve-root ekleyin ve kök dizinin silinme riskini azaltmak için değişkenlerde mutlak yollar kullanmaktan kaçının.
Sık yapılan hatalar
- rm dosya*.txt beklenenden daha fazla dosyayı sildi — tırnak işaretleri veya kaçış karakterleri kullanın: rm "dosya*.txt" veya rm dosya*.txt.
- rm .* gizli dosyaları anlamadan silmeye çalışmak — . ve .. öğelerine dokunabilir; rm .* kullanmayın.
- Alışkanlıkla sudo kullanmak — sistem dosyalarının silinme riskini artırır.
- İçeriği görüntülemeden doğrudan rm -rf kullanmak — önce her zaman ls, sonra rm.
SSS
- Silinen bir dosya nasıl geri yüklenir? trash-cli kullandıysanız — trash-restore. Doğrudan silindiyse — geri yükleme yedeklere veya özel yardımcı programlara (testdisk/photorec) bağlıdır, ancak başarı garantili değildir.
- Silme işlemi için dosyanın kendisine ait izinler gerekli mi? Hayır: dizin izinleri (w ve x) önemlidir. Dosya izinleri içeriğin değiştirilmesini etkiler, ancak dizinden silinmeyi etkilemez.
- Tüm kullanıcı için bir "çöp kutusu" oluşturulabilir mi? Evet: trash-cli kullanın veya dosyaları ~/Trash içine taşıyan ve zamanlanmış olarak temizleyen bir betik yapılandırın.
Emin değilseniz — önce bir kopya oluşturun ve komutu ayrı bir klasörde test edin. Bu, verilerinizi ve zamanınızı kurtaracaktır.