Advertisement
SlavkovB

Unix - backup_month

Jan 29th, 2019
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.67 KB | None | 0 0
  1. # UNIX скрипта
  2. #(20 поени) Да се напише командна процедура која за именик sliki, зададен како аргумент на #командна линија, ќе го направи следново:
  3.  
  4. #Датотеките во именикот треба да се реорганизираат во посебни подименици според типот (само .jpg датотеки) и месецот кога оригиналните #датотеки биле креирани/модифицирани. #Подимениците ќе бидат со име backup_month, каде month ќе биде месецот на креирање на оригиналните #датотеки.
  5.  
  6. #Доколку во именикот sliki претходно се наоѓале други подименици или други типови на #датотеки, истите треба да се избришат.
  7.  
  8. #На крај во именикот sliki треба да се наоѓаат само новокреираните подименици во кои ќе #има само .jpg датотеки.
  9.  
  10. #На почеток на скриптата направете проверка за тоа дали се проследени сите аргументи. #Доколку не се, прикажете соодветно упатство за употреба и излезете неуспешно. Да се внимава, #доколку изворниот именик не постои или е празен, скриптата треба да го извести корисникот за тоа #и да заврши неуспешно.
  11.  
  12. #Решението од ова барање да се зачува како командна процедура, под името zad4-t2.sh.
  13.  
  14. #Пример за користење на скриптата: ./zad4-t2.sh /home/user/sliki
  15.    
  16.  
  17.  
  18. #!/bin/bash
  19.  
  20. if [ $# -lt 1 ]
  21. then
  22.         echo "Vnesi imenik"
  23.         exit 1;
  24. fi
  25.  
  26. indirItems=`ls $1 | wc -l`
  27.  
  28. if [ $indirItems -eq 0 ]
  29. then
  30.         echo "Prazen folder"
  31.         exit 1;
  32. fi
  33.  
  34. for file in `ls -l $1 | awk '{ print $10; }'`
  35. do
  36.         neESlika=`echo $file | grep -v '\.jpg$'`
  37.         if [ -f $neESlika ]
  38.         then
  39.                 continue;
  40.         else
  41.                 cd $1
  42.                 rm -rf $file
  43.                 cd ..
  44.         fi
  45. done
  46.  
  47. cd $1
  48.  
  49. for item in *
  50. do
  51.         mo=`ls -l $item | awk '{ print $7; }'`
  52.  
  53.         if [ ! -d backup_${mo} ]
  54.         then
  55.                 mkdir backup_${mo}
  56.                 mv $item backup_${mo}
  57.         else
  58.                 mv $item backup_${mo}
  59.         fi
  60. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement