Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#15| Dragon God
Demon's Souls |#14| Flamelurker
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Сэйдж Рас Весь текст 822.4 Kb

Приемы профессиональной работы в Unix

Предыдущая страница Следующая страница
1 ... 14 15 16 17 18 19 20  21 22 23 24 25 26 27 ... 71
       используется  параметр $@.  Путем включения всех параметров в командную
       строку,  любые ключи,  предназначенные команде mv, передаются ей. Таким
       способом  мы можем изменить путь,  которым файлы посылаются в "мусорную
       корзину".

            3.2.3. dosflp  - копирование файлов с гибкого диска формата MS-DOS
       с использованием символов шаблона в именах файлов

---------------------------------------------------------------------------

       Имя: dosflp
_____________________________________________________________________
        dosflp     Копирование файлов с гибкого диска формата DOS с
                   использованием символов шаблона в именах файлов

     НАЗНАЧЕНИЕ

            Копирует файлы  с гибкого диска в формате DOS (в XENIX) на жесткий
       диск.  Обеспечивает возможность использования записи с  помощью  симво-
       лов-шаблонов  для имен файлов на гибком диске,  где такая запись обычно
       недопустима.

     ФОРМАТ ВЫЗОВА

            dosflp [-a] [-c] [-dDRIV] [-eEXP][-h] [-l] [-r] [-sDIR]
        где
          -a означает копирование файлов, соответствующих *.asm
          -c означает копирование файлов, соответствующих *.c
          -d выбирает имя устройства DRIV из набора A,B,X,Y (по умолчанию A)
          -e использует выражение EXP, чтобы применить к файлам grep
          -h копирует файлы, соответствующие *.h
          -l только выдает список файлов
          -r удаляет файлы вместо их копирования
          -s указывает подкаталог DIR на гибком диске формата DOS

            Пример вызова
            dosflp     Копирование всех файлов с устройства A: в текущий
                       каталог
            Исходный код для dosflp

1  :
2  # @(#) dosflp v1.0  Wildcard copies from DOS floppy
                       Author: Russ Sage

4  EXP=.\*
5  DRIVE="A:"
6  OP="c"

8  if [ "$#" -gt 0 ]
9    then  for ARG in $@
10          do
11          case "$ARG" in
12          -a)  EXP='.*\.asm$';;
13          -c)  EXP='.*\.c$';;
14          -d*) DRIVE="`echo $ARG | cut -c3-`:";;
15          -e*) EXP='`echo $ARG | cut -c3-`';;
16          -h)  EXP='.*\.h$';;
17          -l)  OP="l";;
18          -r)  OP="r";;
19          -s*) DRIVE="$DRIVE`echo \"$ARG" | cut -c3- `/";"
20          *)   echo "dosflp: arg error"
21               echo "usage: dosflp [-a] [-c] [-d] [-e] [-h] [-l]
        [-r] [-s]"
22               exit 1;;
23          esac
24       done
25 fi

27 case $OP in
28 c)  echo "\nCopying files from $DRIVE to `pwd`";;
29 l)  echo "\nListing files on $DRIVE"
30     dosdir $DRIVE | more
31     exit;;
32 r)  echo "This option removes all the data on the floppy."
33     echo -n "Do you want to do this (y/n): "
34     read RSP
35     if [ "$RSP" = "y" ]
36       then  echo "\nRemoving files on $DRIVE"
37       else exit
38     fi;;
39 esac

41 dosls $DRIVE | tr "[A-Z]" "[a-z]" > /tmp/doslist

43 for FILE in `grep "$EXP" /tmp/doslist`
44 do
45         echo $FILE
46         case $OP in
47         c)  doscp $DRIVE$FILE .;;
48         r)  dosrm $DRIVE$FILE;;
49         esac
50 done

52 rm /tmp/doslist

            Переменные среды выполнения

        ARG       Хранит аргументы командной строки
        DRIVE     Устройство с гибким диском формата DOS
        EXP       Выражение, имитирующее действие символа-шаблона
        FILE      Хранит имя файла, над которым производится действие
        OP        Ключ, определяющий необходимое действие

            Описание
            Зачем нам нужен dosflp?

            Это команда только для системы XENIX.  Операционная система XENIX,
       являясь продукцией фирмы Microsoft, имеет средства для общения с файло-
       вой системой MS-DOS.  Для ознакомления с основами совместного использо-
       вания DOS и XENIX давайте рассмотрим основные параметры.
            Каждый жесткий диск может иметь максимум четыре раздела. Это огра-
       ничение MS DOS,  которое перенесено в мир XENIX.  Ничего плохого в этом
       нет, пока мы не начинаем работать с жестким диском большой емкости. Для
       70-мегабайтного диска, например, вы можете создать четыре рав-
       ных раздела, каждый из которых содержит приблизительно 17 Мбайт. Вы мо-
       жете создать меньший раздел, но тогда другой раздел должен быть больше.
       В зависимости от того,  какая часть ваших программ и данных должна быть
       использована в основном MS-DOS и какая - XENIX, может быть использована
       различная конфигурация.
            Большим преимуществом системы XENIX/DOS является то, что XENIX мо-
       жет размещаться в одном разделе, а DOS в другом. Как это сделать? Нужно
       запустить программу "fdisk" в каждой операционной системе.  Это значит,
       что XENIX может общаться с разделом DOS, получая полное имя устройства,
       указывающее на другой раздел.  Драйвер, который читает раздел DOS, дол-
       жен знать, как выглядит DOS (т.е. знать файловую систему DOS). Если вы-
       полнить  такую  операцию,  можно получать списки файлов и копировать их
       туда и обратно.  К сожалению,  DOS не имеет возможности чтения разделов
       XENIX.
            При работе с гибким диском вы имеете дело только с одним разделом.
       Это  снова ограничение DOS.  Некоторые системы UNIX,  в отличие от DOS,
       позволяют иметь столько разделов на жестком или гибком  диске,  сколько
       вы хотите,  в отличие от DOS. По определению, гибкий диск DOS сформати-
       рован в системе DOS,  которая выполняет форматирование низкого уровня и
       помещает файловую систему DOS на гибкий диск.
            В системе XENIX гибкий диск может быть  либо  в  формате  файловой
       системы, либо неструктурированным устройством последовательного доступа
       подобно магнитной ленте. Для процедуры dosflp мы используем только гиб-
       кие диски в формате DOS.
            Теперь к делу. Предположим, вы имеете систему DOS и файлы, находя-
       щиеся  на диске DOS,  вы можете читать и писать файлы на гибкий диск из
       XENIX. Но существуют некоторые ограничения на выполнение операции копи-
       рования,  которые не слишком удобны пользователю.  Например,  вы можете
       сказать "doscp *.c a:".  В результате все файлы текущего каталога кото-
       рые оканчиваются на .c,  будут скопированы на гибкий диск формата DOS на
       устройстве a:.  Побочный эффект выполнения doscp заключается в том, что
       все  символы перевода строки (или прогона строки) превращаются в символ
       возврат каретки/перевод строки, поскольку DOS обрабатывает конец строки
       иначе,  чем XENIX. Таким же образом, когда вы копируете с гибкого диска
       формата DOS в XENIX, лишние символы возврата каретки убираются.
            Что вы не можете сделать,  так это сказать "doscp a:*.c".  Команда
       doscp не допускает указания вида *.c при копировании с  гибкого  диска.
       Это происходит потому,  что командный процессор распространяет метасим-
       волы (*,?,[]) и не может непосредственно читать раздел DOS.  Поэтому вы
       не можете использовать символы при копировании с гибкого диска DOS.
            Отметим, что может наблюдаться гораздо больше  побочных  эффектов,
       когда вы имеете дело с гибкими дисками DOS. Во-первых, длина имени фай-
       ла ограничена.  DOS допускает до восьми символов имени файла  плюс  три
       символа  расширения.  В  результате после копирования всех ваших файлов
       XENIX на гибкий диск многие из них могут иметь не те имена, которые они
       имели в XENIX. Это сущее страдание, когда вы пытаетесь сделать копию на
       гибкие диски DOS, потому что вы больше не имеете уверенности, как обра-
       щаться к файлам,  когда вы копируете их обратно с гибкого диска.  Кроме
       того,  поскольку расширение имени файла в DOS имеет только три символа,
       файл с именем "spreadsheet.finance" может оказаться на гибком диске DOS
       с именем "spreadsh.fin" и распознавание его может представлять  опреде-
       ленные трудности.
            Но это еще не все. Когда файл копируется из XENIX в DOS, ВСЕ имена
       в DOS записываются заглавными буквами. Если у вас есть файлы с именами,
       в которых смешаны верхний и нижний регистры,  то вы несколько потеряете
       понятность имен. Если вы используете в именах символы верхнего регистра
       при копировании файлов обратно в XENIX,  они не переводятся  на  нижний
       регистр.  В  результате  все имена ваших файлов оказываются записанными
       символами верхнего регистра в XENIX, что не очень удобно.
            В чем  мы нуждаемся,  так это в таком средстве,  которому мы можем
       указывать,  какие файлы копировать с гибкого диска на жесткий  диск,  и
       которое копирует их с сохранением регистра в имени файла. Все это дела-
       ет процедура dosflp.

            Что делает dosflp?

            Dosflp пытается исключить все негативные аспекты копирования  фай-
       лов XENIX/DOS. Это высокое требование, но оно достижимо. Вкратце подход
       dosflp следующий:  получить список имен файлов с гибкого  диска,  пере-
       вести имена в нижний регистр,  выбрать из полного списка имена тех фай-
       лов,  которые соответствуют вашим требованиям, и затем копировать файлы
       один  за другим в текущий каталог XENIX.  Для того,  чтобы сделать это,
       требуется гораздо больше команд XENIX вида  dosxx,  а  также  различных
       других команд XENIX.
            В дополнение к копированию, dosflp также выдает список файлов, ко-
       торые имеются на гибком диске DOS, и удаляет файлы с гибкого диска. Эти
       функции легко реализовать,  потому что как только  один  раз  процедура
       доступа  написана,  добавить  новые команды для выполнения операций над
       файлами довольно просто.
            Обычно мы  хотим управлять файлами определенного типа как группой.
       Сюда относятся ассемблерные исходные файлы, исходные файлы на языке C и
       файлы-заголовки на языке C.  Поэтому,  чтобы снять с вас обязанности по
       вводу универсальных символов для этих типов файлов,  мы прямо указываем
       их в качестве опций команды dosflp.  Например,  ключ -a копирует только
       файлы,  которые оканчиваются на .asm, поэтому нет необходимости помнить
       вид выражения для копирования этих файлов. Аналогично, ключ -c копирует
       все файлы, оканчивающиеся на .c, и ключ -h копирует файлы, оканчивающи-
       еся на .h.
            Как мы увидим позже,  прямое указание, о котором мы говорим здесь,
       являеется выражением  для команды grep.  Использование всех возможностей
       команды grep достигается при указании образцов имен файлов.
            Используйте ключ -d для указания,  с какого гибкого диска произво-
       дится копирование. По умолчанию это устройство a: или A:. Не имеет зна-
       чения,  на  каком  регистре вы укажете имя устройства.  Для уверенности
       проверьте файл /etc/default/msdos. Этот файл содержит соответствия меж-
       ду символом устройства и маршрутным именем XENIX.  Например, файл может
       выглядеть так:
            A=/dev/fd048ds9
            B=/dev/fd148ds9
            C=/dev/hd0d
            D=/dev/hd1d
            X=/dev/fd096ds15
            Y=/dev/fd196ds15
            Как вы  видите,  маршрутные  имена - это обычные имена устройств и
       ничего больше.
            В качестве  основного средства выполнения работы dosflp использует
       команду doscp.  Это утилита способна понимать формат  файловой  системы
       DOS.   Dosflp   передает  ей  обозначение  устройства  и  другие  опции
       посредством переменных командного процессора. Например, ключ "-dB:" ме-
       няет устройство на B вместо принятого по умолчанию устройства A.
            Если выражения прямого указания типа файлов не соответствуют тому,
Предыдущая страница Следующая страница
1 ... 14 15 16 17 18 19 20  21 22 23 24 25 26 27 ... 71
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (52)

Реклама