man/files
man · Dosyalar

$ rm

Bölüm 1 · Dosyalar

dosya ve dizin girdilerini (bağlantılarını) siler

Özet

rm [-f | -i] [-dIRrvWx] dosya ...
unlink [--] dosya

Açıklama

rm yardımcı programı, komut satırında belirtilen normal dosyaları veya dizin girdilerini silmeye çalışır.

Dizinler (klasörler) varsayılan olarak silinemez; dizinleri silmek için -d veya rekürsif silme için -R / -r seçenekleri kullanılmalıdır.

Eğer bir dosyanın izinleri yazmaya izin vermiyorsa ve standart girdi cihazı bir terminal ise, kullanıcıdan standart hata çıktısı (stderr) üzerinden silme onayı istenir.

Seçenekler

Aşağıdaki seçenekler mevcuttur:

  • -d: Diğer dosya türlerinin yanı sıra boş dizinleri de silmeye çalışır.
  • -f: Dosya izinlerine bakılmaksızın ve kullanıcıya onay sormadan dosyaları doğrudan siler. Dosya mevcut değilse herhangi bir hata mesajı yazdırılmaz ve çıkış durumu hata olarak değiştirilmez. Bu seçenek, önceki tüm -i seçeneklerini geçersiz kılar.
  • -i: Her dosyayı silmeden önce kullanıcıdan etkileşimli onay ister. Bu seçenek, önceki tüm -f seçeneklerini geçersiz kılar.
  • -I: Üçten fazla dosya siliniyorsa veya bir dizin rekürsif olarak siliniyorsa bir kez onay ister. -i seçeneğine kıyasla daha az rahatsız edici olup toplu kazaları önlemek için iyi bir koruma sağlar.
  • -P: Bu seçeneğin macOS üzerinde bir etkisi yoktur. Geriye dönük uyumluluk amacıyla korunmuştur.
  • -R / -r: Belirtilen dizinleri altındaki tüm dosya ve alt klasörlerle birlikte rekürsif olarak siler. Bu seçenek -d seçeneğinin yeteneklerini de kapsar.
  • -v: Ayrıntılı (verbose) modda çalışarak silinen her dosya veya dizini işlem sırasında standart çıktıya yazdırır.
  • -W: Birleşik dosya sistemlerinde (union file system) whiteout'lar tarafından üzeri kapatılmış olan silinmiş dosyaları geri getirmeye (kurtarmaya) çalışır.
  • -x: Bir dizin ağacını rekürsif olarak silerken, farklı disk birimlerinin bağlama noktalarını (mount points) geçmez.

[!WARNING] Kök dizin /, geçerli dizin . veya bir üst dizin .. yollarını rm ile silmeye çalışmak doğrudan bir hatadır ve engellenir. rm yardımcı programı sembolik bağlantıları (symlinks) siler, bağlantıların işaret ettiği hedef dosyaları veya dizinleri silmez.

Yardımcı program unlink adıyla çağrıldığında (veya unlink syntax'ı kullanıldığında), yalnızca tek bir dosya bağımsız değişkeni sağlanabilir ve bu bir dizin olamaz. unlink(2) sistem çağrısını doğrudan yürüten bu basit modda hiçbir seçenek (flag) kullanılamaz. Ancak, olağan seçenek sonu sınırlayıcısı olan -- seçeneği isteğe bağlı olarak bağımsız değişkenden önce gelebilir.


Notlar

rm komutu, komut satırı argümanlarını çözümlemek için getopt(3) standart kütüphanesini kullanır. Bu sayede, bayrak seçeneklerinin bittiğini belirten çift tire (--) işaretini kabul eder. Bu özellik, tire işareti (-) ile başlayan dosya adlarını güvenle silebilmenizi sağlar.

Örneğin, adı tam olarak -dosyaadi olan bir dosyayı silmek için:

rm -- -dosyaadi

Aynı silme davranışı, mutlak veya göreli yollar kullanılarak da güvenle gerçekleştirilebilir:

rm ./-dosyaadi
rm /Users/kullanici/-dosyaadi

Çıkış Durumu

rm aracı, belirtilen tüm dosyalar veya dizin ağaçları başarıyla silindiyse (veya mevcut olmayan dosyalar için -f seçeneği etkinleştirilmişse) 0 değeriyle çıkış yapar. Bir hata oluşması durumunda 0'dan büyük bir değerle sonlanır.

Örnekler

Aşağıdaki örnekler kabukta (shell) çalıştırılabilecek şekilde gösterilmiştir:

  1. foobar dizinini altındaki tüm dosya ve alt klasörlerle birlikte onay istemeden zorla (-f) ve rekürsif (-r) olarak silme:

    rm -rf foobar

    [!CAUTION] rm -rf komutu son derece güçlü ve geri dönüşü olmayan bir silme işlemidir. Kullanırken hedef dizinin doğruluğundan kesinlikle emin olun.

  2. Adı tam olarak -f olan bir dosyayı, bir seçenek olarak algılanmasını önleyerek silme:

    rm -- -f
  3. unlink komutunu kullanarak tek bir dosyayı (dizin olmamalıdır) silme:

    unlink rapor.txt

Ayrıca Bakınız

rmdir(1), chflags(1), unlink(1), undelete(2), unlink(2), fts(3), getopt(3), symlink(7)