Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # a. Скрипту передается один параметр - имя файла, который нужно восстановить (без полного пути -только имя).
- # b. Скрипт по файлу trash. log должен найти все записи, содержащие в качестве имени файла переданный параметр, и выводить по одному на экран полные имена таких файлов с запросом подтверждения.
- # c. Если пользователь отвечает на подтверждение положительно, то предпринимается попытка восстановить файл по указанному полному пути (создать в соответствующем каталоге жесткую ссылку на файл из trash и удалить соответствующий файл из trash). Если каталога, указанного в полном пути к файлу, уже не существует, то файл восстанавливается в домашний каталог пользователя с выводом соответствующего сообщения.
- home="/home/oleg"
- trashfolder=$home"/.trash"
- trashlog=$home"/.trash.log"
- filename=$1
- M_OK="Fine Reader^W."
- M_MLP_PINKIEPIE_SWEAR="Cross my heart and hope to fly stick a cupcake in my eye."
- while read line <&3
- do
- infile=$(echo $line | grep -Ei "\/$filename\/\/" | grep -Eio "\/.+\/\/" | sed "s/\/\///")
- infilename=$(echo $infile | grep -Eio "/[^\/]+$" | tr -d "/")
- outfile=$(echo $line | grep -Ei "\/$filename\/\/" | grep -Eio "\/\/.+$" | sed "s/\/\//\//")
- if [ -e "$outfile" ];
- then
- echo "$infilename is coming. Are you ready for this?"
- read line
- if [ $line == "y" ];
- then
- if [ -e "$infile" ];
- then
- echo "$infile is already exist. Rewrite it?"
- read key
- if [ $key == "y" ];
- then
- ln $outfile $infile
- fi
- else
- ln $outfile $infile
- if [ $? == "1" ];
- then
- echo "Error with copyng $infile to $outfile. Try copy to $home?"
- read key
- if [ $key == "y" ];
- then
- infile="$home/$infilename"
- echo "ln $outfile $infile"
- if [ -e "$infile" ];
- then
- echo "$infile is already exist. Rewrite it?"
- read key
- if [ $key == "y" ];
- then
- ln $outfile $infile
- fi
- else
- ln $outfile $infile
- fi
- fi
- fi
- fi
- fi
- fi
- done 3<$trashlog
- echo $M_OK
- exit 1
Advertisement
Add Comment
Please, Sign In to add comment