|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 07 Mar 2007 17:31:54 To : Sergey Subject : Re: Про копирования каталогов... -------------------------------------------------------------------------------- Sergey @ Wed, 7 Mar 2007 05:16:01 +0000 (UTC): S> Привет... S> Подскажите плиииз, правильно ли я делаю... Исключения копирования каталогов S> (перечисленных в файле) из корня в другое место... S> Есть файлы с перечислением построчно каталогов, которые не надо S> копировать. Hазвания файлов совпадают с именем сервера, если его нет, то S> default файл. И вот что получилось S> -------------------- S> #!/usr/bin/perl -w S> $ETC = "/usr/local/etc/dir" S> $SERVER=split(/,/, $ARGV[0]); S> $SERVER =~ tr/a-z/A-Z/; S> $fromdir="/tmp/fromdir"; S> $outdir="/tmp/outdir"; S> $CP="bin/cp"; S> sub COPY_DIR S> { S> my (@strs,$str,@dirs,$dir); S> if ( -e $ETC/$SERVER\.excl) S> { S> open (EXC, "$ETC/$SERVER\.excl); S> } S> else S> { S> open (EXC, "$ETC/default\.excl"); S> } S> while ( $exc = <EXC> ) S> { S> chop; S> opendir (D, $fromdir) or warn "Cannot open $fromdir: !" and next; S> @dirs=grep {!(/^\./) && "$fromdir/$_"} readdir D; S> rewinddir D; S> foreach $dir (@dirs) S> { S> if ( -d ($dir ne $exc)) S> { S> @strs=`($CP -pR -- $fromdir/$dir "$outdir") &2>1`; S> foreach $str (@strs) S> { S> &Log(2,"$str"); S> } S> closedir D; S> } S> close EXC; S> } S> ------------------------------- S> Подскажите плииз , что где не так... Или как может быть решить такую задачу S> попроще, с помощью регекспов??? S> Буду благодарен любой посдсказке.... S> --------------------------- S> С уважением Сергей Если я правильно понял сходу, то не на первой итерации while не будет скопировано только то, что нарисовано в первой строчке EXC, но оно успешно будет скопировано на второй. А правильно будет сначала зачитать весь EXC, а потом уже открывать директорию, и проверять по всему списку. А ну и кроме того, сильно подозреваю, что ($dir ne $exc) дает результат, к которому бессмысленно применять -d. Hу а что количество открывающих фигурных скобок не соответствует количеству закрывающих, тебе сам perl расскажет... -- Artem Chuprina RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru Штатными средствами среды я могу пририсовать "документу" оглавление, обсуждение, усы и бороду (c) Бо Беркгаут --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/25606ef6ebd81.html, оценка из 5, голосов 10
|