Смекни!
smekni.com

Работа с файлами и каталогами (стр. 2 из 5)

Обратимся к примеру. Предположим, что вы зарегистрировались в системе UNIX под именем startship и задали команду pwd. Система напечатает имя пути /home/startship. Чтобы отобразить имена файлов и справочников в этом текущем справочнике, введите команду ls и нажмите клавишу <RETURN>. После того, как вы выполните последовательность этих команд, экран будет выглядеть следующим образом:

$ pwd<CR>

/home/ startship

$ ls <CR>

bin

draft

letters

list

mbox

$

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

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

Синтаксис команды:

ls имя пути

Имя пути может быть либо полным именем пути требуемого справочника, либо родственным. Например, вы можете получить содержание справочника draft, когда вы работаете в справочнике startship, если введете команду ls draft. Экран терминала будет выглядеть следующим образом:

$ls draft<CR>

Outline

table

$

В этом примере draft является родственным именем пути от родителя (starship) к подчиненному справочнику (draft).

Вы также можете использовать родственное имя пути для печати содержимого родительского справочника в то время, когда вы находитесь в подчиненном справочнике. Две точки (..) являются самым простым способом выполнения этой функции. Например, следующая командная строка указывает родственное имя пути от справочника startship к home:

$ Is ..<CR> jmrs

mary2 startship

$

Вы получите тот же результат, если зададите полное имя пути от root к home:

ls /home<CR>

Вы можете распечатать содержимое любого системного справочника, к которому имеете право доступа, выполнив команду ls с полным или родственным именем пути.

Команда ls особенно полезна, если вы имеете много файлов и пытаетесь определить, существует ли определенный файл в вашем текущем справочнике. Например, вы находитесь в справочнике draft и хотите определить, есть ли в нем файлы outline и notes. Задайте команду Is следующим образом:

$ ls outline notes<CR>

outline

notes: No such file or directory

$

Система сообщит, что файл outline существует в этом справочнике, а вот файл notes не найден.

Команда Is не распечатывает содержимое файла. Для этих целей воспользуйтесь командами cat, pg, pr.

Часто используемые ключи команды ls

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

1 .Перечислить все файлы в справочнике.

Имена некоторых файлов в вашем собственном справочнике начинаются с точки (например, .profile). Когда имя файла начинается с точки, он не включается в список, распечатываемый командой Is. Чтобы распечатать такие файлы, введите команду Is с ключом -а..

Например, чтобы распечатать информацию о всех файлах в вашем текущем справочнике (starship), включая и файлы, имя которых начинается с точки, введите команду Is -а и нажмите клавишу <RETURN>.

2.Распечатать содержание в укороченном формате.

Ключи -С и -F команды ls используются достаточно часто. Вместе эти ключи распечатывают подсправочники и файлы справочников и помечают исполняемые файлы символом *, справочники - символом /, символическую связь (каналы) - символом @.

Например, вы можете распечатать информацию о всех файлах вашего рабочего справочника startship, выполнив команду:

3.Распечатать содержание в расширенном формате.

Возможно, более информативным ключом команды ls является ключ -1, который отображает содержание справочника в расширенном формате. Этот формат включает в себя: режим, число связей, владелец, группа, размер в байтах и время последней модификации каждого файла. Предположим, вы задали команду Is -1, находясь в справочнике startship:

Первая выводная строка (total 30) показывает объем дискового пространства в байтах. Последующие строки дают представление о справочниках и файлах в справочнике startship. Первый символ в каждой строке (d, -, l, b или с) говорит о типе файла:

d = справочник

- = обыкновенный файл

1 = символическая связь (канал)

b = специальный блочный файл

с = специальный символьный файл

Таким образом на экране вы можете видеть, что справочник startship содержит три справочника и два обычных файла.

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

Далее следует цифра - счетчик связей. Для справочника этот счетчик показывает число справочников, расположенных под ним, плюс два (для самого справочника и справочника-родителя).

Следующим является регистрационное имя владельца файла (в данном случае startship), и за ним - групповое имя файла или справочника (project).

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

Команда cd - изменить текущий справочник

Сразу же после регистрации в системе UNIX, вы попадаете в ваш собственный справочник. Пока вы будете работать в нем, он будет вашим текущим справочником. С помощью команды cd вы сможете работать в другом справочнике.

Синтаксис команды:

cd имя-пути-нового-справочника<СR>

Любое допустимое имя пути (полное или родственное) может использоваться в качестве аргумента команды cd.. Если вы не укажете имя пути, то команда переместит вас в ваш собственный справочник. Справочник, в который вы перешли, становится вашим текущим справочником.

Например, чтобы перейти из справочника startship в подчиненный draft, введите команду cd draft и нажмите клавишу RETURN. После получения подсказки вы можете проверить ваше новое местоположение, введя команду pwd.

Теперь, находясь в справочнике draft, вы можете создать подсправочники в нем, задав команду mkdir, и новые файлы, используя редактор ed или vi.

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

Вы также можете использовать полное имя пути в команде cd. Например, чтобы перейти из справочника draft в справочник letters, введите:

cd /home/startship/letters<CR>

Так как letters и draft являются подчиненными справочнику srartship, то вы можете использовать родственное имя пути ../letters в команде cd. Две точки (..) перемещают вас в справочник startship и /letters перемещает вас в letters.

Итак, команда cd изменяет ваш рабочий справочник. Аргументом команды cd является новое имя справочника. Если аргумент отсутствует, команда cd помещает вас в ваш собственный справочник.

Когда shell помещает вас в указанный справочник, то возвращается подсказка $. Чтобы получить доступ к справочнику, который не является вашим рабочим справочником, вы должны указать полное или родственное имя пути в командной строке.

Команда rmdir - удалить справочник

Если вам больше не нужен справочник, вы можете удалить его с помощью команды rmdir.

Синтаксис команды:

rmdir имя (имена) справочника(ов)

Вы можете указать более одного имени справочников в командной строке.

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

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

имя-справочника not empty

Например, предположим, что вы имеете справочник memos, который содержит один подсправочник: tech и два файла june.30 и july.31. Если вы попытаетесь удалить справочник memos, то получите сообщение:

$ rmdir memos<CR> rmdir: memos not empty

$

Чтобы удалить справочник memos, вы должны сначала удалить его содержимое: подсправочник tech и файлы june.30 и july.31. Удалив содержимое справочника memos, можете удалить и его. Однако сначала переместитесь в родительский справочник (ваш собственный). Команда rmdir не отработает, если вы будете находиться в том же справочнике, который удаляете. Из своего собственного справочника задайте команду:

rmdir memos<CR>

Если справочник memos пуст, то эта команда его удалит и возвратит вам подсказку.

Доступ к файлу и работа с ним

В этом подразделе описываются несколько команд системы UNIX, которые осуществляют доступ к файлу и производят обработку его в структуре файловой системы. Команды разделены на две группы: основные и advanced.

Основные команды являются фундаментальными в использовании файловой системы; advanced команды предполагают сложную технику обработки информации при работе с файлами.

Основные команды

В этом подразделе описываются команды системы UNIX, необходимые для доступа к файлам и для их использования.

cat - Печатает содержимое указанного файла на терминал

pg - Печатает содержимое указанного файла на терминал порциями или страницами

рг - Печатает частично отформатированную версию указанного файла на терминал

ср - Создает копию существующего файла

mv - Перемещает или удаляет файлы

rm - Удаляет файл

wc - Распечатывает информацию о числе строк, слов и символов в файле

chmod - Изменяет режим доступа к файлу (или справочнику)

Команды cat, pg, рг - распечатать содержимое файла

В системе UNIX существует три команды для распечатки содержимого файлов: cat, pg, рг. Команда cat выводит содержимое файла на экран терминала или, если вы укажете, в другой файл или новую команду.

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

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