Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Управление файлами



Эта работа посвящена изучению приемов формирования и преобразования файлов в ОС UBUNTU.

Изучаются команды:

cat, cp - копирование файлов;

mv - перемещение и переименование файлов;

ln - организация ссылок на файл;

sort - сортировка файлов;

wc - определение числовых параметров файла;

touch - обновление временных характеристик файла.

Для подсчета строк, слов, или символов в файле:

wc <ключ> <путь к файлу>

С командой используются следующие ключи:

-l — для подсчета числа строк;

-w — для подсчета числа слов;

-c — для подсчета числа символов.

Для вывода содержимого файла на экран:

cat <список путей к файлам>

Если cat указано в списке более одного пути, то содержимое ука­занных файлов будет выведено последовательно. Таким образом, ко­манду cat можно использовать для соединения нескольких файлов в один.

Для того чтобы записать результат соединения в целевой файл, следует воспользоваться приемом перенаправления вывода. Для ука­зания целевого файла следует добавить в строку, запускающую ко­манду на выполнение следующую конструкцию:

> <путь к файлу результату>

Например, для вывода сообщения «Не11о, world!» в файл bloknot.txt, можно воспользоваться следующей командой:

Если требуется произвести запись в конец уже существующий файл с сохранением уже записанной туда информации, используется следующая конструкция:

Например:

Подобным образом, можно осуществлять перенаправление не только вывода, но и ввода. В этом случае, если программа ожидает ввода пользователя, вместо него будет подставлено содержимое ука­занного файла.

< <путь к файлу-источнику>

В качестве примера, рассмотрим запуск команды cat без указа­ния файла. В этом случае, программа будет ожидать от пользователя ввода данных, и выводит их.

^Z

Теперь, применим прием перенаправления ввода, указав cat, что ввод требуется осуществить из только что полученного файла.

В случае, когда необходимо передать результаты, выводимые одной командой на вход другой команде можно воспользоваться кон­вейером. Конвейер строится при помощи символа ‘|’, которым раз­деляются команды. Например, следующую последовательность ко­манд:

Можно заменить таким конвейером:

(функция wc –w считает количество введённых слов, разделённых пробелами)

Для постраничного просмотра файлов используется функция more:

Используйте клавишу Enter для перехода к следующей строке просматриваемого файла, клавишу пробела для перехода к следующей странице просматриваемого файла. Для выхода нажмите клавишу q.

Часто команда тоге используется для постраничного просмотра результата работы другой команды, для чего она объединяется с этой программой в конвейер. Например:

Для соединения файла, после разделения командой cut

Для сортировки содержимого файла:

Результат сортировки не записывается в исходные файлы, а выво­дится на экран. Команда имеет следующие ключи:

-r — производить сортировку по убыванию, вместо сортировки по возрастанию;

-n — рассматривать содержимое файлов как числа, и производить для сортировки числовое сравнение, а не лексикографическое. Для создания нового пустого файла:

touch <список путей к файлам>

Если файл уже существует, то у него будет изменено время по­следнего обращения.

Для копирования файла:

cp <путь к исходному файлу> <путь к файлу назначения>

cp <список путей к исходным файлам> <путь к ка­талогу назначения>

ср -r <список путей к исходным файлам и/или каталогам> <путь к каталогу назначения>

Пример работы с файлами

Попробуйте объяснить смысл каждый строки из данного примера. Какие операции запрашивает пользователь, и какие ответы даёт система?

Заметим, что для указания всех файлов в текущем каталоге в ка­честве списка путей в исходном файле, можно использовать специ­альный символ *, известный как wildcard. При этом команде ср символ * передан не будет. При обработке строки с командой и ее параметрами программа оболочка заменит его списком имен всех файлов, найденных в текущем каталоге. Вообще, кроме символа *, при задании шаблона для генерации списка файлов, могут использо­ваться также символы?, [ и ]. При этом они имеют следующее значение:

* — любая последовательность символов. Например, шаблон /home/*а* будет заменен списком всех файлов и каталогов в ката­логе /home, содержащих символ а;

? — любой одиночный символ. Например, шаблон /usr/??? будет заменен списком имен всех файлов и каталогов в каталоге /usr, имеющих длину 3;

[ ] — любой из символов, заданных в скобках. Например, шаб­лон /lib/*[.0-9]* будет заменен списком имен всех файлов и ка­талогов в каталоге /lib, имеющих в имени символ точки, или цифру;

[^] — любой из символов, кроме символов, заданных в скобках. Например, шаблон /lib/ [^aeiou] * будет заменен списком имен всех файлов и каталогов в каталоге /bin, не начинающихся на гласную букву.

Так как обработка шаблонов генерации списков производится про­граммой-оболочкой, использовать шаблоны для передачи списков файлов в качестве параметров любым программам, в том числе и не предназначенным для работы с файлами.

Следующий пример выведет список всех файлов и каталогов в корневом каталоге:

В случае если список, сгенерированный по шаблону оказывается пустым, то есть файлов, имена которых удовлетворяют критерию не обнаружено, шаблон передается программе, обрабатывающей коман­ду в неизменном виде со всеми специальными символами. Вот, на­пример, результат выполнения команды в пустом каталоге:

echo *

*

Для перемещения файла:

mv <путь к файлу> <новый путь для файла>

пример:

Отметим, что команда перемещения файла может также быть ис­пользована для его переименования.

Для удаления файла:

rm <список путей к файлам>

rm -r <список путей к файлам и/или каталогам>

Для поиска файлов, удовлетворяющих критерию:

find <список путей для начала поиска> [опции] <список критериев поиска>

В случае отсутствия критериев поиска, результатом команды бу­дут все файлы, расположенные во всех подкаталогах всех указанных для поиска каталогов. Причем, командой find наличие, или отсутствие у файла в начале имени точки не учитывается, то есть в списки фай­лов попадут все файлы, включая скрытые. Перечислим некоторые критерии поиска:

-name <шаблон> — файл будет включен в результат только, ес­ли его имя (без учета пути к файлу) соответствует шаблону програм­мы-оболочки, переданному а качестве параметра критерию;

-type <тип> — файл будет включен в результат только, если его тип соответствует указанному в критерии; среди всех возможных типов выделим следующие: d — для каталога, f— для файла.

В случае если требуется ограничить глубину поиска, следует воспользоваться опцией -maxdepth, которой в качестве парамет­ра передается максимальная глубина спуска в подкаталоги. Напри­мер, чтобы производить поиск только среди файлов текущего ката­лога, имена которых начинаются не на точку, можно использовать такую команду:

find. –maxdepth l –name “[^.]*”

Заметим, что в предыдущем примере, шаблон генерации списка был заключен в кавычки, чтобы подавить генерацию списка програм­мой-оболочкой при разборе параметров.

Для получения информации о размере файлов или каталогов:

du <список путей к файлам или каталогам>

Для каждого файла из списка параметров программа печатает его размер, а для содержащихся в списке параметров каталогов, и всех ка­талогов, содержащихся в них — суммарный объем хранящихся в них файлов.





Дата публикования: 2014-11-04; Прочитано: 505 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...