Work10 REMARKS script le lab08 ask2-6 dirstat, create, deli, dirsplit, mynd #LAB 8 : ASKHSH 2 -dirstat #File name: $0 #username : imanousi #To script elegxei ola ta arxeia mesa se enan fakelo #an ena arxeio einai aplo arxeio h fakelos #Akrws apokalyptiko script for entry in * #An to entry einai aplo arxeio... # tote... if [ -f "$entry" ] ; echo "$entry is a le" #...to entry einai aplo arxeio. #Alliws... #An to entry einai fakelos... #...tote... elif [ -d "$entry" ] ; echo "$entry is a le" #...to entry einai fakelos!! echo "$entry?!" #LAB 8 : ASKHSH 3.1 #File name : create.imanousi #username : imanousi #To script dhmiourgei arxeia me to onoma ths parametrou pou tha soume. #To plithos twn arxeiwn pou dhmiourgountai eisagetai apo ton xrhsth.
SOS #Edw kanoume kati pou den katalava ti akrivws einai #Ελέγχεις, αν ο αριθμός των παραμέτρων που δίνεται ισούται με 0, έτσι #Αν δεν δόθηκαν παράμετροι έχεις μήνυμα λάθους και βγαίνεις με exit (διάφορο του 0) π.χ. 1 if [ $# -eq 0 ]; echo "this is an error message" 1>&2 #το μήνυμα θα εμφανιστεί στην έξοδο λαθών #καλύτερα να λες και ποιο είναι το λάθος πχ. δεν έδωσες παράμετρο/όνομα #ΚΑΙ το πρόγραμμα σταματά ΔΕΝ ΠΑΕΙ ΠΙΟ ΚΑΤΩ- βγαίνει με exit code 1 #Eisafwfh plithous arxeiwn echo "Eisagete plithos arxeiwn pou thelete na dhmiourgisete" read n for ((i=1;i<=n;i++)) #Dhmiourgia touch $*$i #θα δίνεται μόνο μια παράμετρος η $1 επομένως touch "$1".$i echo dhmiourgia arxeiou "$*$i" #"$1.$i" vassik@aetos:~/work$./create.imanousi this is an error message #Mia megali apofash echo "Exete thn eykairia na diagrapsete ta arxeia pou dhmiourgisate!" echo "Thn ligoureveste???!!!" echo "Parakalw epilekste yes/no" #H wra ths krishs... read yn if [ $yn == yes ] [ $yn == y ] ; for ((i=1;i<=n;i++)) rm $*$i echo "Sygxaritiria! ta arxeia sas diafrakan!" #LAB 8 : ASKHSH 4 #File name : delle.imanousi
#username : imanousi #to script dexete ws orisma sthn gramh entolwn ena onoma arxeiou #kai to diagrafei. #elegxos gia yparksh orismatwn if [ $# -eq 0 ] ; echo "Den yparxoun orismata." >&2 #giati ta vazoume afta?? #αν δεν το βάλεις θα συνεχίσει πιο κάτω, και δεν το θέλουμε #elegxos gia yparksh arxeiou if [! -f "$1" ] ; echo "To $1 den einai arxeio." >&2 exit 2 # Μετά τα exit συνήθως, δεν χρειάζεται AΦΟΥ ΒΓΑΙΝΕΙ από το πρόγραμμα #H Diagrafh echo "Thelete sta alhthia na diagrapsete to arxeio $1 (yes/no)?" read yn if [ "$yn" == yes ] [ "$yn" == y ] ; rm "$1" echo "To arxeio $1 diagrake epityxws" #ΥΠΑΡΧΕΙ εντολή με όνομα dirsplit Δώστε man dirsplit #Μην τρέχετε οπου νάναι την άσκηση 5, και πάνε τα αρχεία σας δεν ξέρω που και τα χάσετε.. # Φτιάξτε ένα φάκελο επιλογή σας π.χ. movedir και βάλτε μέσα 5-6 άδεια αρχεία π.χ. aa ll ka ma za #LAB 8 : ASKHSH 5 #File name : dirsplit.imanousi #username : imanousi #To paron script #1. Dexetai ws orisma to onoma enos katalogou. #2. Dhmiourgei dyo ypokatalogous mesa ston arxiko katalogo. #3. Metakinei ta arxeia tou katalogou stous ypokatalogous. # Ston ena ta arxeia me onoma apo A-L kai ston allo ola ta ypoloipa.
#4. Emfanizei sthn othoni to plithos twn arxeiwn kathe katalogou. #Elεgxos gia yparksh parametrou if [ $# -eq 0 ] ; echo "Den yparxoun parametroi." >&2 #Ο αρχικός κατάλογος θα δίνεται στην παράμετρο "$1" π.χ. έστω ότι δίνουμε dirsplit online #α. Δεν ζητά να ελέγχεται αν το online υπάρχει (αν και θα ήταν λογικό) #β. Δεν λέει τι ονόματα θα δώσεις στους υποκαταλόγους, οπότε βάζεις ότι θέλεις #γ. Ζητά να ελέγχει, αν οι υποκαταλόγοι που θα δώσεις, υπάρχουν if [ -d "$1"/"$1".1 -o -d "$1"/"$1".2 ] ; echo "Oi katalogoi ${1}/${1}.1 h ${1}/${1}.2 yparxoun" >&2 exit 2 #Dhmiourgeia fakelou mkdir $1 #ΟΧΙ αυτός θα υπάρχει και θα έχει μέσα τα αρχεία που θα μεταφερθούν π.χ. aa ll ka ma za #Dhmiourgia ypofakelwn ston arxiko fakelo $1, με ονόματα.αρχικοςφάκελος.1 και.αρχικοςφάκελος.2 mkdir./${1}/.${1}.1./${1}/.${1}.2 #Metafora tw arxeiwn tou katalogou stous ypokatalogous (kryfoi) mv./${1}/[aa-l]*./${1}/.${1}.1 mv./${1}/*./${1}/.${1}.2 #H apokalypsh... mv./${1}/.${1}.1./${1}/${1}.1 mv./${1}/.${1}.2./${1}/${1}.2 #Emfanish plithous arxeiwn se kathe ypokatalogo echo -n "Arithmos arxeiwn ston katalogo $1 : " ls -l./$1 wc -l echo -n "Arithmos arxeiwn ston katalogo $1/${1}.1 : " ls -l./$1/${1}.1 wc -l echo -n "Arithmos arxeiwn ston katalogo $1/${1}.2 : " ls -l./$1/${1}.2 wc -l
#LAB 8 : ASKHSH 6 #File name : mynd.imanousi #username : imanousi #To script dexetai ws orisma ths grammhs entolwn to onoma enos arxeiou #kai elegxei an to arxeio ayto brisketai ston trexonta katalogo h se ypokatalogous #tou (prwtou epipeu). #O klasikos elegxos gia yparksh parametrwn if [ $# -eq 0 ] ; echo "Den yparxoun parametroi." >&2 if [ -f./"$1" ] ; echo "To axreio yparxei ston trexonta katalogo" `pwd` for i in * if [ -f./"$i"/"$1" ] ; echo "To arxeio $1 yparxei ston ypokotalogo $i : " `pwd`/"$i "
#!/bin/sh #Ergasia 8 -dirstat #Nikiforos Pertselis npertsel #------------------------------------ for i in * if test -d $i echo "$i is a directory" elif test -f $i echo "$i is a le" echo "$i is something " echo "Telos..." #!/bin/sh #dirstat #username: Kornilia Deligianni kdeligia # for i in * if [ -d $i ]; echo "$i is a directory" #μπαίνε μέσα με Tab, για να είναι ευκρινή τα If elif [ -f $i ]; echo "$i is a le" echo "$i is something " echo "Telos..."
#create #username: Kornilia Deligianni kdeligia # if [ $# -eq 0 ]; echo "den edwses parametro" 1>&2 for ((i=1;i<=50;i++)) touch "$1.$i" echo "dimiourgithike to arxeio '$1.$i'" #LAB8 : ASKHSH 2 -dirstat.$user #username: lrigouts for i in * if test -f "$i" ; echo "$i : einai arxeio" elif test -d "$i" ; echo "$i : einai fakelos" echo "$i : einai kati allo" #lrigouts -create.lrigouts #=============================================
if test $# -ne 1 ; echo " $0: O arithmos twn parametrwn den einai isos me 1" 1>&2 echo "Tha dhmiourgithoun 50 arxeia me to onoma tis parametrou pou sate" echo for ((i=1; i<51; i++)) touch "$1"$i echo "$1$i " #γράφε το ονομά σου - splatiot # dirstat.splatiot for i in "$PWD"/* ; #σχεδόν πάντα τις μεταβλητές μέσα σε " " if [ -d "$i" ] ; echo "\"$i\" is a Directory." elif [ -f "$i" ] ; echo "\"$i\" is a Regular File." echo "\"$i\" is not a Directory neither a File." #γράφε το ονομά σου - splatiot #create.splatiot if [ $# -gt 1 ] ; echo "$0:Too many parameters." 1>&2
temp=1 while [ $temp -lt 51 ] ; touch "$1".$temp temp=$((temp+1)) #γράφε το ονομά σου - splatiot #creator100.splatiot temp=1 while [ $temp -lt 101 ] #rm -i "$temp"le #rm gia remove//touch gia create. Bάζετε πάντα -i για επιβεβαίωση σβυσίματος # Nαι Bασικά εδώ θέλει πρώτα να δημιουργήσεις # 100 αρχεία και μετά να τα σβύσεις Αλλά αυτό που τον νοιάζει είναι το όνομα 1le, 2le ktl. temp=$((temp+1)) #γράφε το ονομά σου - splatiot #delle.splatiot if [ $#!= 1 ] ; echo "$0: Error during input, need only 1 parameter!" 1>&2 if [! -f "$1" ] ; echo "$0: Error,no matched le found for the according parameter." 1>&2
exit 2 answ=no echo "Are you sure u want to delete \"$1\" (yes/no)?" read answ while [ $answ!= yes ] && [ $answ!= no ] ; #APORIA!!! Ποια είναι η απορία?? echo "Choose:yes/no." read answ if [ $answ = yes] ; #αν και εδώ δεν ειναι απαραίτητο, μπορείς και [ "$answ" = "yes" ] rm "$1" #γράφε το ονομά σου - ngrammen #Lab 8 Askisi 2 -dirstat.ngrammen for entry in * if [ -d "$entry" ] echo "$entry is a directory" elif [ -f "$entry" ] echo "$entry is a kanoniko arxeio" echo "$entry is... an adeio arxeio" #είναι η περίπτωση πχ ενός Link σε αρχείο, που διαγράφη όπως το ~vassik/work/mylink
#γράφε το ονομά σου - ngrammen #lab8 Askisi 3.1 - create.ngrammen if [ $# -eq 0 ] echo Bale kamia parametro re trele 1>&2 for (( i=1; i<51; i++)) touch $0.$i #Ετσι θα δώσει create.ngrammen.1, create.ngrammen.2, κτλ. # θέλουμε touch "$1"$i δηλ. 1 η παράμετρος.1,κτλ. #γράφε το ονομά σου - ngrammen #lab8 Askisi 3.2 - createor100.ngrammen for (( i=0; i<100; i++)) touch "$i"le #γράφε το ονομά σου - ngrammen #askisi 4 ergasthrio 8 - delle.ngrammen if test $# -eq 0; echo "you must give a lename" 1>&2
if [! -f "$1" ] echo "Den iparxei ayto to arxeio" 1>&2 exit 2 echo "Thes na to diagrapseis? yes or no?" read answer if [ $answer = yes ] rm "$1" Τα αρχεία σου dirsplit.ngrammen και myng.ngrammen ΕΙΝΑΙ ΑΔΕΙΑ (size=0) #!/bin/sh #dirstat #username: aapostol # for i in * if [ -d "$i" ]; echo "$i is a directory" elif [ -f "$i" ]; echo "$i is a le" echo "$i is something " echo "Telos" #create #username:aapostol #
if [ $# -eq 0 ]; echo "den exei dw8ei parametro" 1>&2 for ((i=1;i<=50;i++)) touch "$1.$i" echo "$1.$i'" #!/bin/sh #dirstat #username: ksianidi for i in * if [ -d "$i" ]; echo "$i is a directory" elif [ -f "$i" ]; echo "$i is a le" echo "$i is something " echo "telos" #create #username:ksianidi if [ $# -eq 0 ]; echo "den exei dw8ei parametros" 1>&2
for ((i=1;i<=50;i++)) touch "$1.$i" echo "$1.$i' " #δεν το ζηταει, αλλά καλά το βάζετε, να βλέπετε και την τιμη "$1.$i" #delle #username: ksianidi if test $# -eq 0; echo "you must give a lename" 1>&2 if [! -f "$1" ] echo "Den uparxei to arxeio" 1>&2 exit 2 echo "Thes na to diagrapseis? (yes/no)" read answer if [ $answer = yes ] rm "$1" #mynd #username:ksianidi if [ $# -eq 0 ] ; echo "Den yparxoun parametroi." >&2 if [ -f./"$1" ] ; echo "To arxreio yparxei ston trexonta katalogo" `pwd`
for i in * if [ -f./"$i"/"$1" ] ; echo "To arxeio $1 yparxei ston ypokotalogo $i : " `pwd`/"$i " #!/bin/bash #ScriptFileName: $0 dirstat.vkiosses #Ergastirio8Ergasia10 for i in * if [ -d "$i" ] echo "$i is directory" elif [ -f "$i" ] echo "$i is le" echo "$i is something " #!/bin/bash #ScriptFileName: $0 create_test.vkiosses #Ergastirio8Ergasia10 #lab8asksisi3_1 if [ $# -eq 0 ] echo "Dose mono ena orisma" 1>&2
for ((i=1;i<=50;i++)) touch "$1".$i # echo "$1"."$i", δεν το ζητάει #!/bin/bash #ScriptFileName: $0 creator100.vkiosses #Ergastirio8Ergasia10 #Lab8Askisi3_2 for ((i=1;i<=100;i++)) touch "$i"le echo "An thelete na diagrapsete ta arxeia poy dimiourgisate pliktrologiste yes" read answer if [ $answer == yes ] rm -r *le #!/bin/bash #Ergasia10 dir_split.vkiosses #Lab8Askisi5 # Έστω $1="~vassik/work/sep" θα ελέγξειs, αν υπάρχει ήδη ~vassik/work/sep/dir1 και dir2 if [ -d "$1"/dir1 -o -d "$1"/dir2 ] #αν o φακελος dir1 ή ο dir2 υπάρχει, δεν κάνουμε κάτι -exit. echo "Ta onomata ton katalogon yparxoyn" 1>&2 #το νούμερο δεν παίζει ιδιαίτερη σημασία, αλλά κρατάμε μια σειρά 1,2,3 κτλ. #θα κάνουμε τους φακέλους ~vassik/work/sep/.dir1 και.dir2 mkdir./"$1"/.dir1./"$1"/.dir2 #θα μεταφέρουμε τα αρχεία mv./"$1"/[a-l]*./"$1"/.dir1 mv./"$1"/[m-z]*./"$1"/.dir2
# θα μετονομάσουμε mv./"$1"/.dir1./"$1"/dir1 mv./"$1"/.dir2./"$1"/dir2 echo -n "To plithos ton arxeion ston fakelo "$1/dir1" einai: " ; ls -l./"$1"/dir1 wc -l " echo -n "To plithos ton arxeion ston fakelo "$1/dir2" einai: " ; ls -l./"$1"/dir2 wc -l " #Den trexei Βασικό θεμα σου το./$1 αυτό σημαίνει ότι αν δώσεις #./dir_split.vkiosses /tmp #Θα ψάχνει για φάκελο $PWD/tmp Πήγαινε στο work τρεξε vk (η ασκηση σου διορθωμένη) : ls -l sep./vk sep ls -l sep #ScriptFileName: $0 delle.vkiosses #Ergasia10 #Lab8Askisi4 if [ $# -eq 0 ] echo "Bale ena orisma" 1>&2 if [! -f "$1" ] echo "to arxeio ayto, den yparxei" 1>&2 exit 2 echo "Ean theleis na diagrapseis to arxeio grapse yes" read answer if [ "$answer" == yes ] rm -r "$1" echo "To arxeio diagrake" echo "OK- To arxeio $1 den diagrake" #!/bin/bash
#ScriptFileName: $0 - mynd.vkiosses #Ergasia10 #Lab8Askisi6 if [ $# -eq 0 ] echo "Bale os orisma ena onoma arxeiou" 1>&2 if [ -f "./$1" ] echo -n "To arxeio $1 yparxei ston katalago:" ; pwd if [ -f "./[a-z]*/ "$1" ] #εδώ λίγο προσοχή το * δεν το βάζεις σε " " γιατί echo "*" δίνει * echo -n "To arxeio $1 yparxei ston katalogo:" ; ls -l./*/"$1" #lab8: askhsh 2 -dirstat.$user #ckaripia for i in * if [ -d "$i" ] echo "$i is a directory" if [ -f "$i" ] echo "$i is le" echo "$i is something " #!/bin/bash
#lab8 askhsh 3 -create.$user #ckaripia if [ $# -eq 0 ]; echo "this is an error message" >&2 for ((i=1;i<=50;i++)) ; touch "$1.$i" echo "dimiourgithike to arxeio '$1.$i'" echo "gia diagra twn arxeion patiste n" read n if [ $n == n ]; # KENA, δεν μπερδευεσαι έτσι με τα n? for ((i=1;i<=50;i++)); rm "$1.$i" #lab8: askhsh 3 - delle.ckaripia #username:ckaripia if [ $# -eq 0 ]; echo "den uparxoun orismata" >&2 if [! -f "$1" ]; echo "to $1 den einai arxeio" >&2 exit 2 echo "gia diagra arxeiou patiste n" read n if [ $n == n ]; #KENA rm "$1" echo "to $1 diagrake"
#lab8: askhsh5 -dirsplit.ckaripia #username:ckaripia if [ $# -eq 0 ]; echo "den uparxoun parametroi" >&2 echo "dwse onoma gia tous dio upofakelous" echo "o prwtos" read n echo "o deyteros" read m if [ d "$1"/"$n" -o -d"$1"/"$m" ]; echo "oi katalogoi den uparxoun " >&2 exit 3 mkdir./"$1"/."$n" "$1"/.$m mv "$1"/[aA-L]* "$1"/."$n" mv "$1"/* "$1"/."$m" #renaming mv "$1"/."$m" "$1"/"$m" mv "$1"/."$n" "$1"/"$n" Συνιστά η άσκηση αρχικά να κάνεις κρυφους καταλόγους,.n,.m ώστε με το * να μην μετακινηθούν και αυτοί. Μετα το mv, τους μετονομάζειs σε n, m echo "ta arxeia tou prvtoy ypokatalogou einai :" ls -l "$1"/"$n" wc -l echo "ta arxeia tou deyterou einai :" ls -l "$1"/"$m" wc -l exit 3 #lab8 askhsh6 mynd.ckaripia #username:ckaripia if [ $# -eq 0 ]; echo "den edwses parametrous" >&2 if [ -f "$1" ]; echo "to arxeio uparxei ston trexonta fakelo" `pwd`
for i in * if [ -f "$i"/"$1" ]; echo "to arxeio uparxei ston upokatalogo $i :" `pwd`/"$i"