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