Рекурсивное копирование каталога в другой каталог
Получение справки Команда %man файл где файл - команда, программа, конфигурационный файл или библиотечная функция, по которой требуется получить справку. Права на использование файла Следующие после типа файла 9 символов представляют собой права на использование файла: первая тройка символов - для пользователя-владельца файла, вторая - для группы-владельца, третья - для всех остальных. Наличие буквы в каждой тройке означает наличие соответствующего права: для обычных файлов: r - право на чтение содержимого файла w - право на изменение содержимого файла x - право на исполнение (запуск) файла для каталогов: r - право на получение списка файлов каталога w - право на создание и удаление файлов в каталоге x - право на "поиск" в каталоге Набор прав --x для каталога позволяет войти в него и прочитать файл, имя которого заранее известно (при условии наличия прав чтения этого файла). Можно также выполнить команды ls и ls -l для этого файла. При этом получить список файлов (ls (-l) для каталога), а также создать или удалить файл нельзя. Право r-- для каталога позволяет произвести чтение каталога, то есть получить список имен его файлов. При этом ни войти в каталог, ни узнать атрибуты файлов (ls -l), ни прочесть файл (даже при наличии прав чтения этого файла) нельзя. Создать или удалить файл, естественно, нельзя. Модификация файла требует прав на запись в файл, так как это операция над файлом. Удаление файла требует прав на запись в каталог, в котором находится этот файл - это операция над каталогом. Наличие права записи в файл не обязательно означает возможность его удалить (хотя можно размер файла уменьшить до нуля).
%ls -a ls -a выводит также файлы, имена которых начинаются с точки. %ls -al %ls .bashrc %ls -l .bashrc %ls /bin %ls -l /bin Проблема: как вывести атрибуты самого каталога, а не его содержимого. Возможные решения: ls -l (строка файла bin) и ls -al bin (строка файла '.') неудовлетворительны при большом числе файлов в текущем каталоге и в каталоге bin - получится слишком длинный листинг. Решение: %ls -d /bin %ls -ld /bin %ls -ld . %ls -l .. %ls -ld ..
Команда %cd каталог - переход в указанный каталог. Без указания каталога - переход в домашний. Каждый пользователь при входе в систему помещается в свой домашний каталог. Все файлы в этом каталоге принадлежат ему - это его собственное дисковое пространство в системе.
Изучение содержимого файла Команда %file имя_файла [имя_файла ...] определяет тип файла путем анализа его содержимого Определите тип всех файлов вашего домашнего каталога и каталога /tmp. Расширение файла (часть имени после точки) в Unix не имеет никакого специального значения. Например, для запуска файла требуется не расширение типа .exe, а право на исполнение. Команда %cat имя_файла - выводит содержимое файла на терминал. %cat /tmp/bash.info Команда %more имя_файла - пейджер (выводит файл постранично, с остановом). Фактически, команда man формирует текст справки и пропускает его через more. %more /tmp/bash.info Команда %tail [-число] имя_файла выводит последние 10 строк файла или сколько указано. %tail /tmp/bash.info %tail -2 /tmp/bash.info Команда %head [-число] имя_файла выводит первые 10 строк файла или сколько указано. %head /tmp/bash.info %head -2 /tmp/bash.info Команда %od имя_файла выводит файл в восьмеричном виде. Ключи: -Nчисло - вывести только указанное число первых байт, -jчисло - пропустить указанное число первых байт, -j0xчисло - пропустить указанное число первых байт (число является 16-ричным), -tx - вывести в шестнадцатеричном виде, -с - вывести каждый байт в виде символа (непечатные символы отображаются как спецсимволы языка Си: \t,\n,\b,\f,\r,\0, либо как трехзначное 8-ричное число). %od -N10 -tx /tmp/bash.info
Манипулирование файлами Создание файла Команда %touch имя_файла изменяет время последней модификации файла на текущее. Побочный эффект: если файла нет, он создается с нулевым размером. %>имя_файла создает файл нулевого размера (буквально: в этот файл перенаправляется вывод из ниоткуда).
Копирование файла в другой файл или каталог %cp файл-источник файл-или-каталог-приемник Если файл приемник существует, он будет удален (т.е. копирование производится поверх). Каталог-приемник должен существовать. %cp /tmp/bash.info b.txt %cp b.txt z %ls -l %cp b.txt tmp %ls –l tmp UNIX расчитана на профессиональных пользователей. Предупреждений по поводу удаления файлов не выводится. Рекурсивное копирование каталога в другой каталог %cp -R каталог-источник каталог-приемник %cp -R tmp dir %ls -l %ls -l dir Перемещение/переименование файла или каталога %mv файл-или-каталог-источник файл-или-каталог-приемник %mv z y %ls %mv y dir %ls %ls dir %mv dir ddd %ls %ls ddd
Символические связи Символическая связь - особый тип файла, содержащий имя другого файла (в листинге ls -l такие файлы обозначаются буквой l в первой колонке). Чтение-запись в файл-связь на самом деле приводят к чтению-записи в файл, на который он ссылается. Создание символической связи: %ln -s сущетсвующий_файл файл_связь (Файл с именем файл_связь не должен существовать.)
%ln -s b.txt c.txt %ls -l (внимание на файл c.txt и его размер: 5 - это число символов в имени "b.txt") %more c.txt
Жесткие связи Создание жесткой связи - это создание еще одного имени, ссылающегося на тот же самый индексный дескриптор: %ln сущетсвующее_имя_файла новое_имя_файла %ln b.txt d.txt %ls -l Файлы b.txt и d.txt абсолютно равноправны, т.к. это два разных имени одного и того же физического файла. %touch d.txt %ls -l b.txt d.txt (внимание на время последней модификации у обоих файлов) %ls -i b.txt d.txt (выводит номера индексных дескрипторов - видим, что это один и тот же файл) Удаление файлов и каталогов %rm имя_файла - удаляет файл, но не к; %rmdir имя_каталога - удаляет каталог, только если он пуст; %rm -r имя_каталога - удаляет каталог рекурсивно (т.е. со всеми подкаталогами), но просит подтверждения при удалении файлов, в которые у вас нет права записи (поскольку для удаления файла достаточно иметь право записи в его каталог); %rm -rf имя_каталога - удаляет каталог рекурсивно и молча. %ls ddd %rm ddd/y %ls ddd %rm ddd %rmdir ddd %rm -r ddd %ls -l %rm c.txt %ls -l b.txt d.txt %rm d.txt %rm a b %ls -l Удаление файла на самом деле представляет собой уменьшение на 1 счетчика его имен в индексном дескрипторе; соответствующий системный вызов называется unlink(2). Физически файл удаляется системой если он закрыт и если счетчик имен равен нулю. Это свойство используется программистами при создании временных файлов: после создания файла функцией open сразу же вызывается unlink, сбрасывающий счетчик имен в 0. Пока файл открыт, его можно использовать (через файловую переменную, возвращенную функцией open; имени у файла уже нет). После вызова close файл автоматически уничтожается. Что представляют собой команды UNIX? Большинство команд представляют собой программы, находящиеся в каталоге /usr/bin. Чтобы выяснить, что понимает шелл под той или иной командой, используйте команду type. Шелл либо укажет путь к исполняемому файлу, либо сообщит, что это - его встроенная команда. %type ls %type rm %type cd %type type %type cat %type od %type head %type pwd %type ln Поиск исполняемого файла производится в каталогах, установленных переменной окружения PATH (переменные окружения будут изучаться в этом курсе позже). Чтобы определить в каком каталоге находится программа, используйте команду which: %which ls %which qwerty %which cd
3. Задание: Сценарии (скрипт) bash 1. Напишите сценарий, проверяющий имя текущего каталога и выводящий сообщение об ошибке, если оно короче пяти символов. 2. Требуется проверить, является ли файл обычным или он является каталогом. Если это обычный файл, то сценарий должен выводить имя файла и его размер. 3. Напишите сценарий, выводящий посекундно в цикле имена файлов текущего каталога и их порядковый номер. 4. Напишите сценарий, который генерирует тысячу файлов 1.txt …. 1000.txt, и в каждый файл записывает подряд 100 чисел N, где N = порядковый номер файла.
Работа с файловой системой 1. Создайте пустой файл и сожмите его gzip. 2. Создайте небольшой каталог testarch с файлами в домашнем каталоге. Выполните резервное копирование этого каталога командой rsync. Создайте в каталоге testarch новый файл newfile. 3. Содержание отчета: 1. Цель работы. 2. Краткое описание теории 3. В рабочем отчете зафиксировать задание, результат его выполнения. 4. Сделать выводы по работе.
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (311)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |