Linux Terminalinde Dosya ve Dizinleri Silme

Fatmawati Achmad Zaenuri/Shutterstock.com

rm ve rmdir komutları Linux, macOS ve diğer Unix benzeri işletim sistemlerinde dosya ve dizinleri siler. Windows ve DOS'ta del ve deltree komutlarına benziyorlar. Bu komutlar çok güçlü ve oldukça az seçenek var.

rm ve rmdir kullanılarak silinen dosyaların ve dizinlerin Çöp Kutusu'na taşınmadığına dikkat etmek önemlidir. Bilgisayarınızdan hemen kaldırılırlar. Bu komutları kullanarak dosyaları yanlışlıkla silerseniz, onları geri yükleyebilmenizin tek yolu bir yedektir.

Rm ile dosyaları nasıl kaldırılır

En basit durum, geçerli dizindeki tek bir dosyayı silmektir. rm komutunu, bir boşluğu ve ardından silmek istediğiniz dosyanın adını yazın.

rm file_1.txt

Dosya geçerli çalışma dizininde değilse, dosyanın konumuna bir yol girin.

rm ./path/to/the/file/file_1.txt

Sen birden fazla dosya adı geçebilir rm . Bunu yapmak belirtilen dosyaların tümünü siler.

rm file_2.txt file_3.txt

Joker karakterler, silinecek dosya gruplarını seçmek için kullanılabilir. * , Birden çok karakteri temsil eder ve ? tek bir karakteri temsil eder. Bu komut mevcut çalışma dizinindeki tüm png resim dosyalarını siler.

rm *.png

Bu komut, tek bir karakter uzantısına sahip tüm dosyaları siler. Örneğin bu, File.1 ve File.2'yi siler ancak File.12'yi silmez.

rm *.?

Bir dosya yazmaya karşı korumalı ise, dosya silinmeden önce size sorulur. y veya n ile cevap vermeli ve “Enter” tuşuna basmalısınız.

Joker karakterlerle rm kullanma riskini azaltmak için -i (interaktif) seçeneğini kullanın. Bu, her bir dosyanın silinmesini onaylamanızı gerektirir.

rm -i *.dat

-f (force) seçeneği etkileşimin tam tersidir. Dosyalar yazmaya karşı korumalı olsa bile onay ister.

rm -f filename

Rm ile Dizinler Nasıl Kaldırılır

Boş bir dizini kaldırmak için -d (dizin) seçeneğini kullanın. Dosya adlarında olduğu gibi dizin adlarında joker karakterleri ( * ve ? ) Kullanabilirsiniz.

rm -d directory

Birden fazla dizin adı sağlanması belirtilen boş dizinlerin tümünü siler.

rm -d directory1 directory2 /path/to/directory3

Boş olmayan dizinleri silmek için -r (özyinelemeli) seçeneğini kullanın. Açık olmak gerekirse, bu dizinleri ve içindeki tüm dosyaları ve alt dizinleri kaldırır.

rm -r directory1 directory2 directory3

Bir dizin veya dosya yazmaya karşı korumalı ise, silme işlemini onaylamanız istenir. Boş olmayan dizinleri silmek ve bu istemleri bastırmak için -r (özyinelemeli) ve -f (zorla) seçeneklerini birlikte kullanın.

rm -rf directory

Burada bakım gereklidir. rm -rf komutuyla hata yapmak veri kaybına veya sistemin bozulmasına neden olabilir. Tehlikelidir ve dikkat en iyi politikadır. Dizin yapısını ve rm -rf komutu ile silinecek dosyaları anlamak için tree komutunu kullanın.

Ubuntu veya başka bir Debian tabanlı dağıtım kullanıyorsanız, bu paketi sisteminize kurmak için apt-get kullanın. Diğer Linux dağıtımlarında bunun yerine Linux dağıtımınızın paket yönetimi aracını kullanın.

sudo apt-get install tree

tree komutunu çalıştırmak, dizin yapısının ve çalıştırıldığı dizinin altındaki dosyaların anlaşılması kolay bir diyagram oluşturur.

tree

Ayrıca, tree komutunu, dosya sisteminde başka bir dizinden ağacı başlatmasını sağlamak için bir yol da sağlayabilirsiniz.

tree path/to/directory

rm komutu ayrıca --one-file-system, --no-preserve-root, --preserve-root seçeneklerine de sahiptir, ancak bunlar sadece ileri düzey kullanıcılar için önerilir. Yanlış bir şey yaparsanız, tüm sistem dosyalarınızı yanlışlıkla silebilirsiniz. Daha fazla bilgi için komutun kılavuz sayfasına bakın.

Rmdir ile Dizinler Nasıl Kaldırılır

Dizinleri silmek için kullanabileceğiniz rmdir adında başka bir komut var. Arasındaki fark rm ve rmdir olmasıdır rmdir sadece boş dizinleri silebilirsiniz. Dosyaları asla silmez.

En basit durum tek bir boş dizini silmektir. Olduğu gibi rm , sen birden dizin adları iletebilirsiniz rmdir veya bir dizine bir yolu.

Geçerli dizindeki tek bir dizini, adını rmdir ileterek silin:

rmdir directory

rmdir isim listesi ileterek birden fazla dizin silin:

rmdir directory1 directory2 directory3

Geçerli dizinde bulunmayan bir dizini, o dizinin tam yolunu belirleyerek silin:

rmdir /path/to/directory

Boş olmayan bir klasörü silmeye çalışırsanız, rmdir size bir hata mesajı verecektir. Aşağıdaki örnekte, rmdir başarıyla ve sessizce, clients dizinini siler, ancak dosyalar içerdiğinden projects dizinini silmeyi reddeder. projects dizini aynen olduğu gibi bırakılır ve içindeki dosyalara dokunulmaz.

rmdir “Dizin boş değil” hatası verdiğinde, komut satırında kendisine iletilen dizinleri işlemeyi durdurur. Dört dizini silmesini istediyseniz ve birincisinin içinde dosya varsa, rmdir size hata mesajını verir ve daha fazlasını yapmaz. Diğer dizinlerin işlenmesi için --ignore-fail-on-non-empty seçeneğiyle bu hataları yoksaymaya zorlayabilirsiniz.

Aşağıdaki örnekte, iki klasör rmdir geçirilmiştir, bunlar work/reports ve work/quotes . --ignore-fail-on-non-empty seçeneği --ignore-fail-on-non-empty komutta dahil edilmiştir. work/reports klasörünün içinde dosyalar vardır, bu nedenle rmdir silinemez. --ignore-fail-on-non-empty seçeneği, rmdir hatayı yok saymaya zorlar ve work/quotes olan işlemesi gereken bir sonraki klasöre geçer. Bu boş bir klasör ve rmdir onu siler.

Kullanılan komut buydu.

rmdir –ignore-fail-on-non-empty work/reports /work/quotes

Bir dizini silmek ve onun üst dizinlerini de silmek için -p (parent) seçeneğini kullanabilirsiniz. Bu numara işe yarıyor, çünkü rmdir hedef dizinle başlıyor ve sonra üst rmdir geri adım atıyor. Bu dizinin şimdi boş olması gerekir, bu nedenle rmdir tarafından silinebilir ve işlem rmdir için sağlanan yolu geri adım adım tekrar eder.

Aşağıdaki örnekte rmdir iletilen komut şudur:

rmdir -p work/invoices

Hem invoices hem de work rehberleri istendiği gibi silinir.

Bash veya başka bir kabuk kullanıyor olsanız da, Linux, dizinleri ve dosyaları doğrudan terminal komut satırından silmeniz için esnek ve güçlü komutlar sağlar. Bazı insanlar terminal etrafında dönen bir iş akışına sahip olmayı tercih eder. Başkalarının bu konuda bir seçeneği olmayabilir. GUI yüklü olmayan sunucular üzerinde veya Raspberry Pi gibi başsız bir sistemde uzaktaki bir oturumda çalışıyor olabilirler. Bu komutlar o insan grubu için mükemmeldir.

Ancak ne tür bir iş akışı tercih ederseniz edin, bu komutlar kabuk komut dosyalarına dahil olma konusunda kendilerini çok iyi ödünç verir. Bir komut dosyası bir cron işi tarafından tetiklenirse, istenmeyen günlük dosyalarını temizleme gibi rutin temizlik işlerini otomatikleştirmeye yardımcı olabilir. Bu kullanım durumunu araştırırsanız, bu komutların gücünü hatırlayın, her şeyi dikkatli bir şekilde test edin ve daima yeni bir yedekleme yapın.