İlginç Bir Bash Script (find,awk,rsync)

Bilmem işinize yarar mı ama bana gerekti ve hazırlamıştım. Sizlerle de paylaşmak istedim.

Senaryomuz şu şekilde;

İki klasörümüz var; biri sabit ve yeri adı belli olan içinde resimlerin bulunduğu bir klasör, diğeri uygulama tarafından rastgele isimlerden oluşturulan ve içerisine ilk klasörümüzdeki resimlerle aynı resimleribarındıran ve o alanı bulup kopyalamak istediğimiz bir klasör.

test1 klasör içeriği: logo.png, favicon.ico

test2 klasörü altında 12d598,65d65,7895ds … gibi 50 klasör var.

Ve bunlardan birkaç tanesinde de logo ve favicon dosyası var. Hangilerinde bilemiyoruz, yapmak istdiğimiz test1 kalsöründe bulunan logo ve favicon dosyasını, ismini bilmediğimiz o klasörü bulup oraya kopyalamak istiyoruz.

root@hp:/home/user# vi script.sh
#!/bin/bash
  
find /home/user/test2/ -iname logo.png -type f > path.txt
awk 'BEGIN{FS=OFS="/"}{gsub("/+","/")} {s=$0~/^\//;NF-=$NF?1:2;$0=$0?$0:(s?"/":".")};1' path.txt > dirpath.txt
source="/home/user/test1/"
for line in `cat dirpath.txt`
        do
                rsync -az "$source" "$line/"
        done

Umarım lazım olursa kullanırsınız.

Yeteneklerini kullanarak başarılı olan insanlarla bir sorunum yok, sadece başarının en üst hedef olmadığını düşünüyorum. Özgürlük, bilginin paylaşılması - genişlemesi başarının, kişiselliğin ötesinde şeyler. Kişisel başarı yanlış değil ama etkisi sınırlanmış, eğer gerektiği kadarını elde ettiyseniz hala bunun için açlık duymak ayıp, tabii doğruluk, güzellik ve adalet için durum tam tersi. / Richard Stallman