Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: metaoleg on May 29th, 2012  |  syntax: Bash  |  size: 1.75 KB  |  hits: 107  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/bash
  2. # a. Скрипту передается один параметр - имя файла в текущем каталоге вызова скрипта.
  3. # b. Скрипт проверяет, создан ли скрытый каталог trash в домашнем каталоге пользователя. Если он не создан - создает его.
  4. # c. После этого скрипт создает в этом каталоге жесткую ссылку на переданный файл с уникальным именем (например, присваивает каждой новой ссылке имя, соответствующее следующему натуральному числу) и удаляет файл в текущем каталоге.
  5. # d. Затем в скрытый файл trash.log в домашнем каталоге пользователя помещается запись, содержащая полный исходный путь к удаленному файлу и имя созданной жесткой ссылки.
  6.  
  7. home="/home/oleg"
  8. trashfolder=$home"/.trash"
  9. trashlog=$home"/.trash.log"
  10. filename=$1
  11. E_FILE_NOT_EXIST="File $filename does not exist"
  12. M_OK="A winrar is you!"
  13. M_MLP_PINKIEPIE_WATCHING="Pinkie Pie watching you! Forever!"
  14.  
  15. if [ ! -d "$trashfolder" ];
  16. then
  17.         mkdir $trashfolder
  18.         lastfile=0
  19. else
  20.         lastfile=$(ls -1 -r $trashfolder | head -1)
  21.         if [ "$lastfile" == "" ];
  22.         then
  23.                 lastfile=0
  24.         else
  25.                 let lastfile+=1
  26.         fi
  27. fi
  28.  
  29. if [ ! -e "$trashlog" ];
  30. then
  31.         touch $trashlog
  32. fi
  33.  
  34. if [ -e "$filename" ];
  35. then
  36.         ln $filename $trashfolder/$lastfile
  37.         rm -f $filename
  38.         echo $filename/$trashfolder/$lastfile >> $trashlog
  39.         echo $M_OK
  40. else
  41.         echo $E_FILE_NOT_EXIST
  42. fi
  43.  
  44. exit 1