В AIX предусмотрены разнообразные средства для работы с файлами. Обычно текстовые файлы создаются с помощью текстовых редакторов. В среде UNIX чаще всего применяются редакторы vi и ed. Кроме того, в операционной системе предусмотрен собственный текстовый редактор INed. Для создания файла выберите редактор, с которым вам удобнее всего работать.
Для создания файлов могут применяться операции перенаправления ввода/вывода. Дополнительная информация по этому вопросу приведена в разделе "Глава 4, Перенаправление ввода и вывода". Вывод команды можно записать в новый файл или добавить к существующему файлу.
Кроме операций создания и изменения файла, предусмотрены функции копирования и перемещения файла из одного каталога в другой, а также функция переименования файлов, предназначенная для создания различных версий файла или записи одного и того же файла под разными именами. Для работы с другим проектом вам, возможно, потребуется создать другой каталог.
Вам может потребоваться удалить некоторые файлы. Если в каталоге будут храниться старые или бесполезные файлы, то его структура быстро станет запутанной. Кроме того, удаление ненужных файлов позволит освободить память системы.
В этом разделе приведена информация по следующим темам:
Для удаления файлов предназначена команда 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 предназначена для перемещения файлов и каталогов из одного каталога в другой, а также для переименования файла или каталога. Если вы перемещаете файл или каталог в другой каталог, и при этом не указываете новое имя, то этот файл или каталог сохраняет свое исходное имя.
Внимание: Если вы не укажете флаг -i, команда mv может заменить существующие файлы. Если вы укажете флаг -i , то для каждого указанного файла будет запрашиваться подтверждение. Если вы укажете флаг -f, то подтверждение запрашиваться не будет. Если будет указана комбинация флагов -f и -i, то первый из них будет игнорироваться.
Например, для перемещения файла в другой каталог и присвоения ему нового имени введите:
mv intro manual/chap1
Нажмите Enter.
Эта команда перемещает файл intro в файл manual/chap1. При этом файл intro удаляется из текущего каталога, а файл chap1 создается в каталоге manual. Обратите внимание на предыдущее Предупреждение.
Например, для перемещения файла в другой каталог с сохранением имени файла введите:
mv chap3 manual
Нажмите Enter.
Эта команда перемещает файл chap3 в файл manual/chap3. Обратите внимание на предыдущее Предупреждение.
Например, для переименования файла введите:
mv appendix apndx.a
Нажмите Enter.
Эта команда переименовывает файл appendix в apndx.a. Если файл с именем apndx.a уже существует, то его старое содержимое заменяется на содержимое файла appendix. Обратите внимание на предыдущее Предупреждение.
Полный синтаксис приведен в описании команды mv в книге AIX 5L Version 5.1 Commands Reference.
Команда 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 зависит от параметра Выражение.
Например, для получения списка всех файлов с именем .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 просматривает содержимое файла, указанного в параметре Файл, или файлов, заданных в параметре -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 вы можете просмотреть содержимое одного или нескольких файлов. Для постраничного просмотра файла укажите команду cat в сочетании с командой pg.
Кроме того, содержимое файлов можно просмотреть с помощью операций перенаправления ввода/вывода. См. "Обзор команд перенаправления ввода и вывода (Глава 4, Перенаправление ввода и вывода)", где приведена дополнительная информация об операциях перенаправления ввода/вывода.
Команда pg предназначена для постраничного просмотра содержимого файлов, указанных в параметре Файл. Если в параметре Файл вы укажете минус (-) или запустите команду pg без параметров, то команда pg будет читать данные из стандартного потока ввода. После каждой страницы данных появляется приглашение. Если вы нажмете клавишу Enter, то появится следующая страница. Для повторного просмотра предыдущих страниц предусмотрены подкоманды команды pg.
Например, для постраничного просмотра содержимого файла myfile введите:
pg myfile
Нажмите Enter.
Полный синтаксис приведен в описании команды pg в книге AIX 5L Version 5.1 Commands Reference.
Команды more и page предназначены для постраничного просмотра текста. После каждой страницы в нижней области окна появляется имя файла и процент просмотренного текста (например, myfile (7%)). Если вы нажмете клавишу Enter, то появится следующая строка. Если вы нажмете пробел, то появится следующая страница текста.
Примечание: В некоторых моделях терминалов при выполнении команды more перед выводом следующего блока данных очищается экран, а содержимое окна не прокручивается.
Например, для просмотра содержимого файла с именем myfile введите:
more myfile
Нажмите Enter.
Для просмотра следующей страницы нажмите пробел.
Дополнительная информация и полный синтаксис приведены в описании команды more в справочнике AIX 5L Version 5.1 Commands Reference.
Команда cat последовательно читает содержимое файлов, указанных в параметре Файл, и записывает его в стандартный поток вывода.
Например, для просмотра содержимого файла notes введите:
cat notes
Нажмите Enter.
Если длина файла превышает 24 строки, то для просмотра дополнительных строк необходимо прокрутить содержимое окна. Для постраничного просмотра файла предназначена команда pg.
Например, для просмотра содержимого файлов notes, notes2 и notes3 введите:
cat notes notes2 notes3
Нажмите Enter.
Полный синтаксис приведен в описании команды cat в книге AIX 5L Version 5.1 Commands Reference.
Команда 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 учитывает регистр символов, причем у заглавных букв приоритет выше, чем у прописных (это зависит от локали).
Пусть в файле 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 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 подсчитывает число строк, слов и байт в файлах, указанных в параметре Файл. Если параметр Файл не задан, то данные читаются из стандартного потока ввода. Результат работы команды записывается в стандартный поток вывода и в нем указывается суммарное число строк, слов и байт во всех заданных файлах. Флаги команды определяют порядок вывода. Под словом понимается символьная строка, отделенная пробелом, символом табуляции или символом новой строки.
Если в команде заданы имена файлов, то эти имена выводятся вместе с результатом подсчета.
Например, для подсчета числа строк, слов и байт в файле с именем chap1 введите:
wc chap1
Нажмите Enter.
Появится число строк, слов и байт в файле chap1.
Например, для подсчета только числа слов и байт введите:
wc -cw chap*
Нажмите Enter.
Появится число байт и слов для каждого файла, имя которого начинается с символов chap, и общий результат.
Полный синтаксис приведен в описании команды wc в книге AIX 5L Version 5.1 Commands Reference.
Команда head записывает в стандартный поток вывода первые несколько строк каждого из заданных файлов или первые несколько строк из стандартного потока ввода. Если в команде head не указаны флаги, то по умолчанию выводятся первые 10 строк.
Например, для просмотра первых пяти строк файла Test введите:
head -5 Test
Нажмите Enter.
Полный синтаксис приведен в описании команды head в книге AIX 5L Version 5.1 Commands Reference.
Команда 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 -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 объединяет выбранные строки из нескольких (не более 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 chap1
Нажмите Enter.
Появится пронумерованный список непустых строк файла chap1.
Для нумерации всех строк введите:
nl -ba chap1
Будет показан пронумерованный список всех строк файла chap1, с учетом пустых строк.
Полный синтаксис приведен в описании команды nl в книге AIX 5L Version 5.1 Commands Reference.
Команда colrm предназначена для удаления указанных столбцов символов из файла. Входные данные считываются из стандартного потока ввода. Результат работы команды записывается в стандартный поток вывода.
Если в команде указан только один параметр, то удаляются все столбцы символов, начиная с указанного. Если в команде заданы два параметра, то удаляются все столбцы символов из указанного диапазона.
Примечание: Нумерация столбцов символов начинается с 1.
Например, для удаления столбцов символов из файла text.fil введите:
colrm 6 < text.fil
Нажмите Enter.
Если в файле text.fil содержится:
123456789
то результат работы команды colrm будет выглядеть следующим образом:
12345
Полный синтаксис приведен в описании команды colrm в книге AIX 5L Version 5.1 Commands Reference.
Глава 4, Перенаправление ввода и вывода
Глава 7, Принтеры,задания и очереди печати
Глава 8, Резервное копирование и носители
Глава 9, Защита системы и файлов