[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]

Руководство пользователя: Операционная система и устройства


Процедуры обработки файлов

В AIX предусмотрены разнообразные средства для работы с файлами. Обычно текстовые файлы создаются с помощью текстовых редакторов. В среде UNIX чаще всего применяются редакторы vi и ed. Кроме того, в операционной системе предусмотрен собственный текстовый редактор INed. Для создания файла выберите редактор, с которым вам удобнее всего работать.

Для создания файлов могут применяться операции перенаправления ввода/вывода. Дополнительная информация по этому вопросу приведена в разделе "Глава 4, Перенаправление ввода и вывода". Вывод команды можно записать в новый файл или добавить к существующему файлу.

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

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

В этом разделе приведена информация по следующим темам:

Удаление файлов (команда rm)

Для удаления файлов предназначена команда rm. Команда rm не запрашивает подтверждение перед удалением файла. Команда rm также применяется для удаления группы файлов или выбора отдельных файлов из списка файлов, помеченных для удаления.

Команда rm

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

Например, для удаления файла с именем myfile введите:

rm myfile

Нажмите Enter.

Для последовательного удаления всех файлов из каталога mydir введите:

rm -i mydir/*

Нажмите Enter.

После появления имени очередного файла введите y и нажмите Enter, если вы хотите его удалить, или нажмите Enter, если вы хотите его сохранить.

Полный синтаксис приведен в описании команды rm в книге AIX 5L Version 5.1 Commands Reference.

Перемещение и переименование файлов (команда mv)

Команда mv предназначена для перемещения файлов и каталогов из одного каталога в другой, а также для переименования файла или каталога. Если вы перемещаете файл или каталог в другой каталог, и при этом не указываете новое имя, то этот файл или каталог сохраняет свое исходное имя.

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

Перемещение файлов с помощью команды mv

Например, для перемещения файла в другой каталог и присвоения ему нового имени введите:

mv intro manual/chap1

Нажмите Enter.

Эта команда перемещает файл intro в файл manual/chap1. При этом файл intro удаляется из текущего каталога, а файл chap1 создается в каталоге manual. Обратите внимание на предыдущее Предупреждение.

Например, для перемещения файла в другой каталог с сохранением имени файла введите:

mv chap3 manual

Нажмите Enter.

Эта команда перемещает файл chap3 в файл manual/chap3. Обратите внимание на предыдущее Предупреждение.

Переименование файлов с помощью команды mv

Например, для переименования файла введите:

mv appendix apndx.a

Нажмите Enter.

Эта команда переименовывает файл appendix в apndx.a. Если файл с именем apndx.a уже существует, то его старое содержимое заменяется на содержимое файла appendix. Обратите внимание на предыдущее Предупреждение.

Полный синтаксис приведен в описании команды mv в книге AIX 5L Version 5.1 Commands Reference.

Копирование файлов (команда cp)

Команда cp или copy создает копию содержимого файла или каталога, указанного в параметре Исходный_файл или Исходный_каталог, в файле или каталоге с именем Целевой_файл или Целевой_каталог. Если Целевой_файл существует, то его содержимое заменяется без предупреждения. При копировании нескольких Исходных_файлов должен быть указан целевой каталог.

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

Для помещения копии файла Исходный_файл в определенный каталог укажите путь к этому каталогу в параметре Целевой_каталог. При копировании в другой каталог файлы сохраняют свои имена, если только в конце пути не было указано новое имя файла. Команда cp также копирует целые каталоги в другие каталоги. Для этого нужно указать флаг -r или -R.

Эта команда может копировать специальные файлы устройств. Для этого рекомендуется указывать опцию -R. Флаг -R позволяет скопировать специальный файл в файл с новым именем в другом каталоге. Если вы укажете флаг -r, то команда cp скопирует специальный файл в стандартный файл.

Например, для создания копии файла в текущем каталоге введите:

cp prog.c prog.bak

Нажмите Enter.

Эта команда копирует файл prog.c в файл prog.bak. Если файл prog.bak не существует, то команда cp создаст его. Если этот файл существует, то команда cp заменит его содержимое копией файла prog.c.

Например, для создания копии файла в другом каталоге введите:

cp jones /home/nick/clients

Нажмите Enter.

Эта команда копирует файл jones в файл /home/nick/clients/jones.

Например, для копирования всех файлов каталога в новый каталог введите:

cp /home/janet/clients/* /home/nick/customers

Нажмите Enter.

Все файлы из каталога clients будут скопированы в каталог customers.

Например, для копирования набора файлов в другой каталог введите:

cp jones lewis smith /home/nick/clients

Нажмите Enter.

Эта команда копирует файлы jones, lewis и smith текущего каталога в каталог /home/nick/clients .

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

cp programs/*.c .

Эта команда копирует файлы каталога programs с расширением .c в текущий каталог, обозначенный одной точкой (.). Между символом c и последней точкой нужно указать пробел.

Полный синтаксис приведен в описании команды cp в книге AIX 5L Version 5.1 Commands Reference.

Поиск файлов (команда find)

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

Например, для получения списка всех файлов с именем .profile введите:

find / -name .profile

Поиск файлов будет выполняться во всей файловой системе, а выводом команды будет список каталогов, где хранятся файлы с именем .profile. Косая черта (/) означает, что команда find должна выполнять поиск в каталоге /(корневом ) и всех его подкаталогах. Для уменьшения времени поиска рекомендуется задавать список каталогов, где вероятнее всего может встретиться нужный файл.

Например, для получения списка файлов с кодом прав доступа 0600 из текущего каталога введите:

find . -perm 0600

Появится список файлов, для которых установлено разрешение на чтение и запись только для владельца. Имя точка (.) означает, что команда find будет просматривать текущий каталог и все его подкаталоги. За информацией о кодах прав доступа обратитесь к описанию команды chmod.

Например, для получения списка файлов с определенным кодом прав доступа из нескольких каталогов введите:

find manual clients proposals -perm -0600

Появится список имен файлов, для которых установлено разрешение на чтение и запись только для владельца и, возможно, другие разрешения. Поиск будет выполняться в каталогах manual, clients и proposals и их подкаталогах. В предыдущем примере было указано выражение -perm 0600, задающее поиск файлов с кодом прав доступа, который в точности равен 0600. В данном примере указано выражение -perm -0600, задающее поиск файлов с кодами прав доступа 0600 и выше. В этом случае будут также выбраны файлы с кодами прав доступа 0622 и 2744.

Например, для получения списка файлов текущего каталога, которые изменялись в течение последних 24 часов, введите:

find . -ctime 0 

Например, для получения списка стандартных файлов, на которые существует несколько ссылок, введите:

find . -type f -links +1

Нажмите Enter.

Появится список имен обычных файлов (-type f), на которые есть несколько ссылок (-links +1).

Примечание: На каждый каталог существует по крайней мере две ссылки: запись в родительском каталоге и собственная запись .(точка). За дополнительной информацией о файлах с несколькими ссылками обратитесь к описанию команды ln.

Например, для получения полных имен всех файлов, расположенных в текущем каталоге и его подкаталогах, за исключением каталогов с именем SCCS или файлов из каталогов с именем SCCS, введите:

Нажмите Enter.

find . -name SCCS -prune  

Например, для получения списка всех файлов объемом 414 байт, введите:

find . -size 414c 

Нажмите Enter.

Полный синтаксис приведен в описании команды find в книге AIX 5L Version 5.1 Commands Reference.

Просмотр типа файла (команда file)

Команда file просматривает содержимое файла, указанного в параметре Файл, или файлов, заданных в параметре -fСписок_Файлов, выполняет набор тестов и классифицирует файлы по типам. Типы файлов записываются в стандартный вывод.

В файле ASCII команда file проверяет первые 512 байт и определяет его язык. Если файл отличен от ASCII, то команда file пытается определить, является ли он двоичным или текстовым файлом, содержащим символы из расширенного набора.

Если в параметре Файл указан исполняемый или объектный файл, версия которого больше 0, то команда file выводит номер версии.

Информацию о файлах, содержащих специальные числа, то есть числовую или строковую константу, задающую тип, команда file получает из файла /etc/magic.

Например, для того чтобы узнать тип файла с именем myfile, введите:

file myfile

Нажмите Enter.

Будет показан тип файла myfile (например, каталог, файл данных, ASCII, исходный файл программы на языке C или архив).

Например, для просмотра типов всех файлов, указанных в списке filenames.lst, введите:

file -f filenames.lst

Нажмите Enter.

Появится список типов всех файлов, указанных в filenames.lst. Тип каждого файла будет указан на отдельной строке.

Например, для создания файла filenames.lst, содержащего список имен файлов текущего каталога, введите:

ls > filenames.lst

Нажмите Enter.

После этого внесите в файл filenames необходимые изменения.

Полный синтаксис приведен в описании команды file в книге AIX 5L Version 5.1 Commands Reference.

Просмотр содержимого файла (команды pg, more, page и cat)

Команды pg, more и page предназначены для просмотра содержимого файла и позволяют управлять скоростью просмотра файлов. С помощью команды cat вы можете просмотреть содержимое одного или нескольких файлов. Для постраничного просмотра файла укажите команду cat в сочетании с командой pg.

Кроме того, содержимое файлов можно просмотреть с помощью операций перенаправления ввода/вывода. См. "Обзор команд перенаправления ввода и вывода (Глава 4, Перенаправление ввода и вывода)", где приведена дополнительная информация об операциях перенаправления ввода/вывода.

Команда pg

Команда pg предназначена для постраничного просмотра содержимого файлов, указанных в параметре Файл. Если в параметре Файл вы укажете минус (-) или запустите команду pg без параметров, то команда pg будет читать данные из стандартного потока ввода. После каждой страницы данных появляется приглашение. Если вы нажмете клавишу Enter, то появится следующая страница. Для повторного просмотра предыдущих страниц предусмотрены подкоманды команды pg.

Например, для постраничного просмотра содержимого файла myfile введите:

pg myfile

Нажмите Enter.

Полный синтаксис приведен в описании команды pg в книге AIX 5L Version 5.1 Commands Reference.

Команды more и page

Команды more и page предназначены для постраничного просмотра текста. После каждой страницы в нижней области окна появляется имя файла и процент просмотренного текста (например, myfile (7%)). Если вы нажмете клавишу Enter, то появится следующая строка. Если вы нажмете пробел, то появится следующая страница текста.

Примечание: В некоторых моделях терминалов при выполнении команды more перед выводом следующего блока данных очищается экран, а содержимое окна не прокручивается.

Например, для просмотра содержимого файла с именем myfile введите:

more myfile

Нажмите Enter.

Для просмотра следующей страницы нажмите пробел.

Дополнительная информация и полный синтаксис приведены в описании команды more в справочнике AIX 5L Version 5.1 Commands Reference.

Команда cat

Команда cat последовательно читает содержимое файлов, указанных в параметре Файл, и записывает его в стандартный поток вывода.

Например, для просмотра содержимого файла notes введите:

cat notes

Нажмите Enter.

Если длина файла превышает 24 строки, то для просмотра дополнительных строк необходимо прокрутить содержимое окна. Для постраничного просмотра файла предназначена команда pg.

Например, для просмотра содержимого файлов notes, notes2 и notes3 введите:

cat notes notes2 notes3

Нажмите Enter.

Полный синтаксис приведен в описании команды cat в книге AIX 5L Version 5.1 Commands Reference.

Поиск строк в текстовых файлах (команда grep)

Команда grep предназначена для поиска строк, соответствующих шаблону, заданному в параметре Шаблон. Каждая найденная строка записывается в стандартный поток вывода.

В шаблоне могут быть указаны специальные символы *, ^, ?, [, ], \(, \), \{, или \}. Например, для поиска строк в файле pgm.s, начинающихся с любой буквы в любом регистре, введите:

grep "^[a-zA-Z]" pgm.s

Нажмите Enter.

Появится список строк файла pgm.s, которые начинаются с какой-либо буквы.

Для просмотра всех строк файла sort.c, которые не совпадают с шаблоном, введите:

grep -v bubble sort.c

Нажмите Enter.

Появится список строк файла sort.c, не содержащих слова bubble.

Для просмотра всех строк вывода команды ls, которые содержат слово staff, введите:

ls -l | grep staff

Нажмите Enter.

Полный синтаксис приведен в описании команды grep в книге AIX 5L Version 5.1 Commands Reference.

Сортировка текстовых файлов (команда sort)

Команда sort упорядочивает строки файлов, указанных в параметре Файл, в алфавитном порядке и записывает результат в стандартный поток вывода. Если в параметре Файл задано несколько файлов, то команда sort выполняет конкатенацию содержимого файлов, а затем сортирует строки полученного текста.

Примечание: Команда sort учитывает регистр символов, причем у заглавных букв приоритет выше, чем у прописных (это зависит от локали).

Пусть в файле names содержатся следующие строки:

marta
denise
joyce
endrica
melanie

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

texas
colorado
ohio

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

sort names

Нажмите Enter.

Появится приблизительно следующий список:

denise
endrica
joyce
marta
melanie

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

sort names states

Нажмите Enter.

Появится приблизительно следующий список:

colorado
denise
endrica
joyce
marta
melanie
ohio
texas

Для замены исходного содержимого файла names отсортированными данными введите:

sort -o names names

Нажмите Enter.

В результате файл names будет содержать те же самые данные, но в отсортированном виде.

Полный синтаксис приведен в описании команды sort в книге AIX 5L Version 5.1 Commands Reference.

Сравнение файлов (команда diff)

Команда diff предназначена для сравнения текстовых файлов. С ее помощью можно сравнивать как отдельные файлы, так и содержимое каталогов.

Если в качестве параметров команды diff заданы обычные файлы, расположенные в различных каталогах, то результат работы команды diff - список несовпадающих строк.

Например, для сравнения двух файлов введите:

diff chap1.bak chap1

Нажмите Enter.

Появится список несовпадающих строк файлов chap1.bak и chap1.

Например, для сравнения двух файлов с игнорированием пробелов введите:

diff -w prog.c.bak prog.c

Нажмите Enter.

В этом случае, если две строки будут отличаться только числом пробелов и табуляций между словами, команда diff -w будет считать их одинаковыми.

Полный синтаксис приведен в описании команды diff в книге AIX 5L Version 5.1 Commands Reference.

Подсчет числа слов, строк и байт в файле (команда wc)

По умолчанию команда wc подсчитывает число строк, слов и байт в файлах, указанных в параметре Файл. Если параметр Файл не задан, то данные читаются из стандартного потока ввода. Результат работы команды записывается в стандартный поток вывода и в нем указывается суммарное число строк, слов и байт во всех заданных файлах. Флаги команды определяют порядок вывода. Под словом понимается символьная строка, отделенная пробелом, символом табуляции или символом новой строки.

Если в команде заданы имена файлов, то эти имена выводятся вместе с результатом подсчета.

Например, для подсчета числа строк, слов и байт в файле с именем chap1 введите:

wc chap1

Нажмите Enter.

Появится число строк, слов и байт в файле chap1.

Например, для подсчета только числа слов и байт введите:

wc -cw chap*

Нажмите Enter.

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

Полный синтаксис приведен в описании команды wc в книге AIX 5L Version 5.1 Commands Reference.

Просмотр первых строк файла (команда head)

Команда head записывает в стандартный поток вывода первые несколько строк каждого из заданных файлов или первые несколько строк из стандартного потока ввода. Если в команде head не указаны флаги, то по умолчанию выводятся первые 10 строк.

Например, для просмотра первых пяти строк файла Test введите:

head -5 Test

Нажмите Enter.

Полный синтаксис приведен в описании команды head в книге AIX 5L Version 5.1 Commands Reference.

Просмотр последних строк файла (команда tail)

Команда tail записывает в стандартный поток вывода содержимое файла, заданного в параметре Файл, начиная с указанной позиции.

Например, для просмотра последних 10 строк файла notes введите:

tail notes

Нажмите Enter.

Например, для просмотра указанного числа строк с конца файла notes введите:

tail -20 notes

Нажмите Enter.

Для постраничного просмотра файла notes, начиная с 200-го байта, введите:

tail -c +200 notes | pg

Нажмите Enter.

Для отслеживания изменения файла accounts введите:

tail -f accounts

Нажмите Enter.

Будут показаны последние 10 строк файла accounts. Команда tail будет продолжать показывать новые строки по мере их добавления к файлу accounts. Для окончания просмотра нажмите клавиши Ctrl-C.

Полный синтаксис приведен в описании команды tail в книге AIX 5L Version 5.1 Commands Reference.

Дополнительная информация и полный синтаксис приведены в описании команды tail в справочнике AIX 5L Version 5.1 Commands Reference.

Вырезание блоков текстового файла (команда cut)

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

Например, для просмотра отдельных полей каждой строки файла введите:

cut -f1,5 -d: /etc/passwd

Будут показаны поля имени входа в систему и полного имени пользователя из системного файла паролей. Это первое и пятое поля (-f1,5), разделенные двоеточием (-d:).

Например, если в файле /etc/passwd указаны следующие сведения:

su:*:0:0:Пользователь со специальными правами доступа:/:/usr/bin/sh
daemon:*:1:1::/etc:
bin:*:2:2::/usr/bin:
sys:*:3:3::/usr/src:
adm:*:4:4:Системный администратор:/var/adm:/usr/bin/sh
pierre:*:200:200:Pierre Harper:/home/pierre:/usr/bin/sh
joan:*:202:200:Joan Brown:/home/joan:/usr/bin/sh

то результат работы команды cut будет выглядеть следующим образом:

su:Пользователь со специальными правами доступа
daemon:
bin:
sys:
adm:Системный администратор
pierre:Pierre Harper
joan:Joan Brown

Полный синтаксис приведен в описании команды cut в книге AIX 5L Version 5.1 Commands Reference.

Вставка блоков в текстовый файл (команда paste)

Команда paste объединяет выбранные строки из нескольких (не более 12) файлов в один.

Например, пусть у вас есть файл с именем names, содержащий следующий текст:

rachel
jerry
mark
linda
scott

файл с именем places, содержащий следующий текст:

Нью-Йорк
Остин
Чикаго
Бока-Ратон
Сеатл

и файл с именем dates, содержащий следующий текст:

5 февраля
13 марта
21 июня
16 июля
4 ноября

Для того чтобы объединить содержимое файлов names, places и dates, введите:

paste names places dates > npd

Нажмите Enter.

Будет создан файл с именем npd, в первом столбце которого будут указаны данные из файла names, во втором столбце - данные из файла places, а в третьем столбце - данные из файла dates. Теперь файл npd содержит следующую информацию:

rachel          Нью-Йорк        5 февраля
jerry           Остин           13 марта
mark            Чикаго          21 июня
linda           Бока-Ратон      16 июля
scott           Сеатл           4 ноября

Имя, город и дата в каждой строке отделены друг от друга символом табуляции. Эти столбцы не всегда выровнены, так как символ табуляции вставляется через каждые восемь символов.

Если вы хотите, чтобы столбцы были отделены друг от друга символом, отличным от табуляции, то введите:

paste -d"!@" names places dates > npd

Нажмите Enter.

Эта команда устанавливает в качестве альтернативных разделителей символы ! и @. Если взять те же файлы names, places и dates, что и в примере 1, то файл npd будет содержать следующую информацию:

rachel!Нью-Йорк@5 февраля
jerry!Остин@13 марта
mark!Чикаго@21 июня
linda!Бока-Ратон@16 июля
scott!Сеатл@4 ноября

Например, для просмотра списка файлов текущего каталога в виде четырех столбцов, введите:

ls | paste - - - -

Нажмите Enter.

Для команды paste каждый символ минус (-) означает создание столбца, содержащего данные из стандартного потока ввода. Первая строка размещается в первом столбце, вторая - во втором, и т.д.

Полный синтаксис приведен в описании команды paste в книге AIX 5L Version 5.1 Commands Reference.

Нумерация строк в текстовом файле (команда nl)

Команда nl читает указанный файл (по умолчанию - стандартный поток ввода), нумерует строки и записывает их в стандартный поток вывода.

Например, если вы хотите пронумеровать только непустые строки, введите:

nl chap1

Нажмите Enter.

Появится пронумерованный список непустых строк файла chap1.

Для нумерации всех строк введите:

nl -ba chap1

Будет показан пронумерованный список всех строк файла chap1, с учетом пустых строк.

Полный синтаксис приведен в описании команды nl в книге AIX 5L Version 5.1 Commands Reference.

Удаление столбцов символов в текстовом файле (команда colrm)

Команда colrm предназначена для удаления указанных столбцов символов из файла. Входные данные считываются из стандартного потока ввода. Результат работы команды записывается в стандартный поток вывода.

Если в команде указан только один параметр, то удаляются все столбцы символов, начиная с указанного. Если в команде заданы два параметра, то удаляются все столбцы символов из указанного диапазона.

Примечание: Нумерация столбцов символов начинается с 1.

Например, для удаления столбцов символов из файла text.fil введите:

colrm 6 < text.fil

Нажмите Enter.

Если в файле text.fil содержится:

123456789

то результат работы команды colrm будет выглядеть следующим образом:

12345

Полный синтаксис приведен в описании команды colrm в книге AIX 5L Version 5.1 Commands Reference.

Связанная информация

Обзор команд

Обзор процессов

Глава 4, Перенаправление ввода и вывода

Глава 11, Оболочки

Файловые системы

Обзор каталогов

Глава 6, Файлы

Связывание файлов и каталогов

Файлы DOS

Глава 7, Принтеры,задания и очереди печати

Глава 8, Резервное копирование и носители

Глава 9, Защита системы и файлов


[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]