X

Linux Bul ve Sil Komutu (find and delete command)

Unix ve Linux ortamında uçbirim kullanarak komut satırı ile Linux / UNIX işletim sistemleri altındaki dosyaları nasıl bulurum ve silerim?

Bir süre sonra dosyaları bulmak ve kaldırmak gerekir. Ancak

, rm komutu arama kriterlerini desteklemez. Bir dizindeki dosyaları aramak ve bunları anında kaldırmak için find komutunu kullanmanız gerekir, find ve rm komutlarını birleştirebilirsiniz.

Linux veya UNIX – Dosya sözdizimini veya türünü bul ve kaldır

Temel olarak bulma komut dizilimi şöyledir:

find dir-name criteria action
bul dizin-adı ölçüt eylem
  1. dir-name : – Çalışma dizinini /tmp/ gibi görünmesini tanımlar.
  2. criteria“*.sh” gibi dosyaları türlerini seçmek için kullanılır.
  3. action : dosyayı bulma ve silme eylemi tanımlanır. (dosyada yapılacaklar).

 

Bir komut mantığı ile *.jpg veya *.sh gibi birden fazla dosyayı kaldırmak için şu dizilimi kullanabilirsiniz:

find . -name "SILINECEK-DOSYA" -exec rm -rf {} \;

VEYA

find . -type f -name "SILINECEK-DOSYA" -exec rm -f {} \;

 

Yukarıdaki iki komut dizilimi arasındaki tek fark, ilk komutun dizinleri de kaldırmasıdır, burada ikinci komut yalnızca dosyaları kaldırır.

Seçenekler:

  1. -name "FILE-TO-FIND" : Dosya veya dosya tipi
  2. -exec rm -rf {} \; : Dosya tipiyle eşleşen tüm dosyaları silin.
  3. -type f : Sadece dosyaları eşleştir ve dizin isimleri hariç.

 

Bul komutu örnekleri:

Bulunduğunuz dizin içerisinde .bak (*.bak) uzantılı tüm dosyaları bulun ve kaldırın:

$ find . -type f -name "*.bak" -exec rm -f {} \;

 

/(root) yani kök dizinindeki tüm temel dosyaları bulun ve kaldırın (lütfen bu komutu dikkatli kullanın):

# find / -name core -exec rm -f {} \;

 

Geçerli dizindeki tüm *.bak dosyalarını bulun ve bunları kullanıcıdan onaylarak kaldırın:

$ find . -type f -name "*.bak" -exec rm -i {} \;

bu komutun çıktı örnekleri:

rm: remove regular empty file `./media0008.bak'? y
rm: remove regular empty file `./image001.bak'? y
rm: remove regular empty file `./pcbackup-14-09-2018.bak'? n

 

Bir veya birden fazla aynı ismi taşıyan dizini bulmak ve içeriklerini veya dizin içinden belirli bir dosyayı silmek için aşağıdaki komut dizilimini kullanabilirsiniz. Mesela new dizinlerini bulsun ve onların içinden .html uzantılı içerikleri bulup silsin diyecek olursak:

find */new/* -type f -name “*.html” -exec rm -f {} \;

komutu işimizi görecektir.

Diğer komut bilgilerimiz için aşağıdan sitemizdeki ilgili sayfalara bakabilirsiniz.
demiray:
Related Post