Shell Dosyası Ufak İstek

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    Linux' a ufaktan bulaştım da çok ufaktan. Şimdi bi shell script (yanlış telafuz ediyo olabilirim, batch file yani) hazırlamam gerekiyor, düzenli olarak çalışacak.

    Burda bir klasörün içinde *.rar dosyaları var, bunları sırayla boş bi klasöre extract edip uzantılarına göre bazı işlemler yaptırıp silmem gerekiyor.

    Az biraz bişeyler yazdım da takıldığım noktalar var. Nasıl çözebilirim acaba ? 

    Takıldığım olay şu :

    Extract' ı tmp diye bi folder' a yapıyorum ama rar dosyasının içeriği hakkında bir fikrim olmayacak. Ama içinde arayacaklarım;

    -.jp2 dosya/lar

    - .jpg, jpeg, png dosya/lar

    - .mrxs dosyası ve bir de aynı isimde bir klasör

    Bu türlere göre ayırt edip bazı işlemler yapmam gerekiyor. Şimdi adam eğer rar dosyasını direk jp2 olarak rar ladıysa, extract edince direk jp2 çıkacak ama birden fazla jp2 dosyasını ya da mrxs için başka bir klasöre atması gerekiyor. Öyle olunca extract edince o klasör çıkıyor ve uzantıyı bulamıyorum. Bunu nasıl bulabilirim ? Bir de bu dosyaları kopyalabilmem için isimlerini bilmem gerekiyor sanırım ya da  mrxs dosyasını convert edebilmek için adı lazım. Bunlara da ulaşamadım. 

    Bunları nasıl yapabiliriz ? 

    Mesela yazdığım kodda Deneme_1.mrsx ya da Deneme_1.jp2 isimlerini ben bildiğim için yazdım oraya ama normalde bilmiyor olucam.

     

    Yazdığım kod : 

    cd /var/www/upload

    for i in `find /var/www/upload-type f -name "*.rar"`; do

    unrar x $i /var/www/upload/tmp

    for j in `find /var/www/upload/tmp -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u`; do  # klasör içindeki dosyaların uzantılarını sıralar

    if [ $i = "mrxs" ]; then

    vips openslideload /var/www/upload/tmp/Deneme_1.mrxs /var/www/digital_slides/tiff/Deneme_1.tiff[tile,compression=lzw,bigtiff]

                            cd /opt/kakadu-7-5/v7_5-01585N/bin/Linux-x86-64-gcc

                            kdu_compress -i /var/www/digital_slides/tiff/Deneme_1.tiff -o /var/www/digital_slides/Deneme_1.jp2

                            rm -f /var/www/digital_slides/tiff/Deneme_1.tiff

                   elif [ $i = "jp2"]; then

                           mv /var/www/upload/tmp/Deneme_1.jp2 /var/www/digital_slides/Deneme_1.jp2

    fi

                   rm -rf /var/www/upload/tmp

    done

    done

     

    Özet :

    - Linux da bir klasörün içindeki belirli dosyaların isimlerini nasıl bulurum ?

    - Belirli uzantılar yoksa sadece folder dan oluşuyorsa bir alt folder' a indirip nasıl tekrar sordurabilirim (recursive şekilde) ? 

    ozgunlu tarafından 30/Mar/16 14:52 tarihinde düzenlenmiştir

    Hello, i am nothing. I come from Neverland.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RitmFarbRacourci
    RitmFarbRacourci's avatar
    Kayıt Tarihi: 14/Mart/2008
    Erkek
    bu adamın sorusu niye açıkta kaldı yaf ^^)/

    bence bir bilen vardır.


    I'şıkY'ılı;^^`) Zk't^^` RnSySyTk.Ödl.SpRtÇzBşBkYd Kryptia.agogE Sa'd-l'Suûd az.ç'k 'lmyn'Dşn Pnct'tnAnNttn Blgi,YpBlgi 'Ct'nDrm.CmdyDrm.MdrnDrm hRşYdşR ClptcPth'Strsm M'nPhs' Ld,X/Y YrYnZmnGrçklk,AlgBzklğ KrzFrst'tr Tiytr' Pugchv,Jtrn,İmmlmn,FllngLef,Pik' SuprmcySprrty CoBehTh elFnmno:NzrioRonldo AdnKy TkSs,TkHrf(?) .RtNsTk.KvMp.Mk.TrmDyn ScklkNmRzgr ŞkHcBy ccp.kky Snrlr'Çz SnaSnLzmsn 'NsnKsknçtr BgDppr.MagllnCl'ds.S'thCro's Ch'kW'ng CreazioneDiAdamo^^`, Arctrs.Spic' ArcScnd,YySnye TrbProp,TrbJet,TrbFan ~3.10^5km/sn~343m/sn ~900-1240m/snMacH RamJt,ScRamJt Przdi^^' Tbu.XL Prsek MAtv^^` mLAT G'dWllHnting(f). 3id't^^` TareZmenPr ParaMotor TrflrVArsİlşklr (-)+.(/)*,~ ZminŞkil . ..Bu imza @SubZero tarafindan degistirilmistir. "Bu kadar uzun karmakarisik bir imza yapma diye uyardim ama heeheeeey(^^D)_hey kim söylüyor, kim dinliyor." Imzanizi SubZero'ya bilgi vermeden degistirmeyiniz. Tesekkurler...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    HarmOniYa bunu yazdı
    bu adamın sorusu niye açıkta kaldı yaf ^^)/

    bence bir bilen vardır.

    eyvallah hocam.


    Hello, i am nothing. I come from Neverland.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MaviEkran
    MaviEkran's avatar
    Kayıt Tarihi: 31/Aralık/2009
    Erkek
    find /tmp/unrared -name '*.jp2' -exec mv -t /home/user/JP2KLASORU {} +


     

    MaviEkran tarafından 31/Mar/16 10:36 tarihinde düzenlenmiştir

    Blue Screen of Death
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    MaviEkran bunu yazdı
    find /tmp/unrared -name '*.jp2' -exec mv -t /home/user/JP2KLASORU {} +


     

    hocam birazcık açıklasaydın keşke :(

    don't give me a fish but teach me how to fish :(


    Hello, i am nothing. I come from Neverland.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unix
    Andrei
    Andrei's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Aralık/2008
    Erkek

    hocam sorun net olarak anlasılmıyor. aynı rar dosyasında .jp2 - .jpg gibi dosyalar varsa bunları ayrı isimlerde klasörlere cıkartsın mı istiyorsun ?


    %40 indirimli olarak "Centos Sistem ve Sunucu Yönetimi" adlı kitabımızı satın alarak, Linux üzerine yapılacak olan devam projeleri icin destekte bulunabilirsiniz : http://www.hepsiburada.com/centos-sistem-ve-sunucu-yonetimi-oku-izle-dinle-ogren-p-KKODLAB01579
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    Andrei bunu yazdı

    hocam sorun net olarak anlasılmıyor. aynı rar dosyasında .jp2 - .jpg gibi dosyalar varsa bunları ayrı isimlerde klasörlere cıkartsın mı istiyorsun ?

    hocam şimdi rar' ın içini bilmiyorum ama olması gerekenler :

    .mrxs dosyası ve aynı adda bi klasör ya da .jp2 dosyaları ya da jpeg, jpg, png dosyaları.

    içinde hangisi olduğunu bulmam lazım. dizin sıralarını yaziyim mesela örnek olaraktan :

    2342132.rar -> [mirax] -> (Deneme_1.mrxs) & [Deneme_1]

    2432423.rar -> (Deneme_1.jp2)

    5345345.rar -> [jpeg2k] -> (Deneme_1.jp2) & (Deneme_2.jp2)

    7446553.rar -> [jpegs] -> (Deneme_1.jpg)

     

    Burada kutulu parantezler klasörü, normal parantezler de dosyaları belirtiyor. Şimdi rarın içinden direk jp2 dosyası da olabilir ya da bir alt klasör olabiliyor ve o klasörün altında jp2 ler olabiliyor. 

    Bunu anlayamıyorum, ben sadece rar' ın içine bakıyorum ama orda klasör varsa benimki false dönüyor. Halbuki o klasörün altında vardı aradığım. Kullanıcının nasıl bir klasörleme yöntemiyle rarlayacağını bilemiyorum.

    Bu yüzden rar' ı extract ettikten sonra recursive şekilde klasörleri tarayıp aradığım uzantılara bakmam gerekiyor ve eğer varsa isimlerini çekmem lazım.

     


    Hello, i am nothing. I come from Neverland.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RitmFarbRacourci
    RitmFarbRacourci's avatar
    Kayıt Tarihi: 14/Mart/2008
    Erkek
    valla benim anladığım :
    find komutuyla, " /tmp/unrared" klasöründeki *.jp2' uzantılı dosyaları,

    mv -t ` komutu ile " home/user/JP2KLASORU " klasörüne TAŞIYOR.

    sondaki süslü parantez ve + işareti ne ise yaşıyor, bilmiyore :D

    ha ama bilmediğin komutları , linux`da, komut -h yada help ile öğrenebiliyoruz ^^)/



    RitmFarbRacourci tarafından 31/Mar/16 12:14 tarihinde düzenlenmiştir

    I'şıkY'ılı;^^`) Zk't^^` RnSySyTk.Ödl.SpRtÇzBşBkYd Kryptia.agogE Sa'd-l'Suûd az.ç'k 'lmyn'Dşn Pnct'tnAnNttn Blgi,YpBlgi 'Ct'nDrm.CmdyDrm.MdrnDrm hRşYdşR ClptcPth'Strsm M'nPhs' Ld,X/Y YrYnZmnGrçklk,AlgBzklğ KrzFrst'tr Tiytr' Pugchv,Jtrn,İmmlmn,FllngLef,Pik' SuprmcySprrty CoBehTh elFnmno:NzrioRonldo AdnKy TkSs,TkHrf(?) .RtNsTk.KvMp.Mk.TrmDyn ScklkNmRzgr ŞkHcBy ccp.kky Snrlr'Çz SnaSnLzmsn 'NsnKsknçtr BgDppr.MagllnCl'ds.S'thCro's Ch'kW'ng CreazioneDiAdamo^^`, Arctrs.Spic' ArcScnd,YySnye TrbProp,TrbJet,TrbFan ~3.10^5km/sn~343m/sn ~900-1240m/snMacH RamJt,ScRamJt Przdi^^' Tbu.XL Prsek MAtv^^` mLAT G'dWllHnting(f). 3id't^^` TareZmenPr ParaMotor TrflrVArsİlşklr (-)+.(/)*,~ ZminŞkil . ..Bu imza @SubZero tarafindan degistirilmistir. "Bu kadar uzun karmakarisik bir imza yapma diye uyardim ama heeheeeey(^^D)_hey kim söylüyor, kim dinliyor." Imzanizi SubZero'ya bilgi vermeden degistirmeyiniz. Tesekkurler...
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unix
    Andrei
    Andrei's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Aralık/2008
    Erkek

    bütün rar cıktılarını tek klasör altına alırsan, X diyelim o klasöre;

    find /x/ \( -name "*.jp2" -or -name "*.jpg" -or -name "*.jpeg" -or -name "*.png" -or -name "*.mrxs" \) -exec cp -t /kopyalanacak_dizin {} \;

    gibi bir komut isini görür sanıyorum. tmp'e cıkarttıgını söylemissin, x'i tmp ile degistirirsin. eger kopyalama islemi yapacaksan bu sekilde, tasıyacaksan mv yazarsın, hic islem yapmayayım isimleri bir dizine atayım dersen de :

    find /x/ \( -name "*.jp2" -or -name "*.jpg" -or -name "*.jpeg" -or -name "*.png" -or -name "*.mrxs" \) -exec ls >> log {} \;

     


    %40 indirimli olarak "Centos Sistem ve Sunucu Yönetimi" adlı kitabımızı satın alarak, Linux üzerine yapılacak olan devam projeleri icin destekte bulunabilirsiniz : http://www.hepsiburada.com/centos-sistem-ve-sunucu-yonetimi-oku-izle-dinle-ogren-p-KKODLAB01579
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RitmFarbRacourci
    RitmFarbRacourci's avatar
    Kayıt Tarihi: 14/Mart/2008
    Erkek
    @Andrei, bir komutun çıktısını, diğer komuta girdi olarak sağlayan komut yada parametre , "-exec" gibi duruyor. öyle mi? execute`den herhalde. tek satırda bu sağlıyor herhalde. @_@

    major lazer , lean on, na na ni ni ←_←(*'▽'*)♪

    > >komutuda hatırladığım, ekran çıktısını, önceki veriyi silmeden, üstüne ekleme gibi. ama {} bu zımbırtı ne ise yarıyor bilmiyore.

    majör lazer, be together .

    RitmFarbRacourci tarafından 31/Mar/16 12:46 tarihinde düzenlenmiştir

    I'şıkY'ılı;^^`) Zk't^^` RnSySyTk.Ödl.SpRtÇzBşBkYd Kryptia.agogE Sa'd-l'Suûd az.ç'k 'lmyn'Dşn Pnct'tnAnNttn Blgi,YpBlgi 'Ct'nDrm.CmdyDrm.MdrnDrm hRşYdşR ClptcPth'Strsm M'nPhs' Ld,X/Y YrYnZmnGrçklk,AlgBzklğ KrzFrst'tr Tiytr' Pugchv,Jtrn,İmmlmn,FllngLef,Pik' SuprmcySprrty CoBehTh elFnmno:NzrioRonldo AdnKy TkSs,TkHrf(?) .RtNsTk.KvMp.Mk.TrmDyn ScklkNmRzgr ŞkHcBy ccp.kky Snrlr'Çz SnaSnLzmsn 'NsnKsknçtr BgDppr.MagllnCl'ds.S'thCro's Ch'kW'ng CreazioneDiAdamo^^`, Arctrs.Spic' ArcScnd,YySnye TrbProp,TrbJet,TrbFan ~3.10^5km/sn~343m/sn ~900-1240m/snMacH RamJt,ScRamJt Przdi^^' Tbu.XL Prsek MAtv^^` mLAT G'dWllHnting(f). 3id't^^` TareZmenPr ParaMotor TrflrVArsİlşklr (-)+.(/)*,~ ZminŞkil . ..Bu imza @SubZero tarafindan degistirilmistir. "Bu kadar uzun karmakarisik bir imza yapma diye uyardim ama heeheeeey(^^D)_hey kim söylüyor, kim dinliyor." Imzanizi SubZero'ya bilgi vermeden degistirmeyiniz. Tesekkurler...
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MaviEkran
    MaviEkran's avatar
    Kayıt Tarihi: 31/Aralık/2009
    Erkek
    MaviEkran bunu yazdı
    find /tmp/unrared -name '*.jp2' -exec mv -t /home/user/JP2KLASORU {} +


     

    Hacı abi senin işini bu görür.

    Diyelim ki rarları /tmp/unrared içine açtın.

    /tmp/unrared altında klasör1/, klasör2/, klasör3 ve klasör3/klasör4 var. Bu klasörlerin altında da karışık şekilde uzantıları jp2 ve jpg olan dosyalar var. Komutumuz jp2 uzantılı dosyaları bir klasöre, jpg uzantılıları da başka klasöre atar.

     

    find /tmp/unrared -name '*.jp2'

    Yukarıdaki komutla /tmp/unrared klasörü altındaki jp2 uzantılı dosyaları buluyoruz.

    -exec mv -t /home/user/JP2KLASORU {} +

    Komutun bu kısmı da find'ın çıktılarını mv komutuna parametre olarak koyuyor. -t hedef klasör. {} ise find'ın sonucu.

    Özetle komut işini görür diye düşünüyorum.

    Scripte falan gerek yok.

     

    jpg uzantılıları başka klasöre koymak için komuttaki ilgili yeri jpg olarak değiştirip, yeni hedef klasörünü gösteriyorsun.

    MaviEkran tarafından 31/Mar/16 18:13 tarihinde düzenlenmiştir

    Blue Screen of Death
Toplam Hit: 987 Toplam Mesaj: 11
shell