Мне нужно сделать резервную копию, а затем восстановить несколько файлов в разных каталогах с / bin / sh - PullRequest
0 голосов
/ 09 сентября 2010

Как следует из названия.Мне нужно иметь возможность сделать резервную копию, а затем восстановить файлы.

Сделать резервное копирование было довольно просто

 if [ "$bup" = "true" ]; then
     cp $file $file.bak

Но сделать восстановление ... было не так просто.

 elif [ "$rup" = "true" ]; then
     bak=`find /path/to/file/ | grep .bak`
     cp $bak ${bak/\.bak}
 fi

Он работает в Bash, но мне нужно, чтобы он работал в Sh ..

Ответы [ 2 ]

1 голос
/ 09 сентября 2010

Расширение параметров оболочки bash не работает в sh. Попробуйте это:

elif [ "$rup" = "true" ]; then
   bak=`find /path/to/file/ | grep .bak`
   orig=`echo $bak | sed 's/\.bak$//'`
   cp $bak $orig
fi

Не забудьте добавить цикл, который выводит результаты поиска, если вы собираетесь обрабатывать несколько BAK-файлов.

0 голосов
/ 09 сентября 2010

Использовать обработку подстроки вместо варианта регулярного выражения:

orig=${bak%.bak}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...