Tovább Vissza Tartalom


12. További szkriptek

12.1 Parancs végrehajtása egy könyvtár minden állományára.

12.2 Példa: Egy egyszerű tömörítő (kissé alaposabban)

            #!/bin/bash          
            SRCD="/home/"
            TGTD="/var/backups/"
            OF=home-$(date +%Y%m%d).tgz
            tar -cZf $TGTD$OF $SRCD
           

12.3 Állomány átnevező

          
             #!/bin/sh
             # renna: A minta szerinti állományok átnevezése 
             # Készítette  Felix Hudson Jan - 2000
             
             #Először ellenőrzi a progrsm indítás paramétereit
             # Ha az első paraméter ($1) egyezik a feltételben megadottal akkor 
             # a program további része végrehajtódik   
             
             # az átnevezés mód vizsgálata
             if [ $1 = p ]; then
             
             #Most kivesszük a mód ($1) és az előtag ($2) adatokat a paraméter
             #listából
               prefix=$2 ; shift ; shift
             
             # Ellenőrizzük az állománynév paramétert
             # Ha nem létezik nem tudunk mit átnevezni!
                        
               if [$1 = ]; then
                  echo "Nincs megadva állomány"
                  exit 0
               fi
             
             # A for ciklus végrehajtódik minden paraméterben megadott állományra
             # mindegyik átnevezésre kerül
               for file in $*
                 do
                 mv ${file} $prefix$file
               done
             
             #befejezzők a program végrehajtását
               exit 0
             fi
             
             # utótagos átnevezés vizsgálata
             # Ez az if  blokk látszólag ugyanaz mint az előző
             # Figyelj a különbségekre
             if [ $1 = s ]; then
               suffix=$2 ; shift ; shift
             
                if [$1 = ]; then
                 echo "Nincs megadva állomány"
                exit 0
                fi
             
              for file in $*
               do
                mv ${file} $file$suffix
              done
             
              exit 0
             fi
             
             # a cserés módú átnevezés azonosítása

             if [ $1 = r ]; then
             
               shift
             
             # Elkerülendő hogy az átnevezés a nem megfelelően
             # paraméterezett indításkor hibásan hajtódjon végre 
             # nézzük a paraméterek számát
             
               if [ $# -lt 3 ] ; then
                 echo "Indítás: renna r [expression] [replacement] files... "
                 exit 0
               fi
             
             # a kellékek kivonatolása
               OLD=$1 ; NEW=$2 ; shift ; shift
             
             # a for ciklus minden állománynés paraméter átnevezését elvégzi

             # 'sed' programot használja az új név képzéséhez
             # egy parancssor alakítja ét bemenő paramétert
             # kifejezésben meghatározott szöveggé
             # végül az átnevezés érvényesíti az esetleges szöveg módosítást  
             
               for file in $*
               do
                 new=`echo ${file} | sed s/${OLD}/${NEW}/g`
                 mv ${file} $new
               done
             exit 0
             fi
             
             # Ha egyik mód se volt meghatározva így zárul program
             # Indítási javaslatok:
             echo "Indítás:"
             echo " renna p [prefix] files.."
             echo " renna s [suffix] files.."
             echo " renna r [expression] [replacement] files.."
             exit 0
             
             # vége!
             
          

12.4 Átnevező (egyszerű)

     #!/bin/bash
     # renames.sh
     # Egyszerű állomány átnevező

     feltetel=$1
     eredeti=$2
     valtozas=$3
     
     for i in $( ls *$feltetel* ); 
     do
         src=$i
         tgt=$(echo $i | sed -e "s/$eredeti/$valtozas/")
         mv $src $tgt
     done
     

Tovább Vissza Tartalom