- •2.1. Введение
- •2.2. Вопросы, относящиеся к команде who
- •2.2.1. Программы состоят из команд
- •2.3. Вопрос 1: Что делает команда who?
- •2.3.1. Обращение к справочнику
- •2.4. Вопрос 2: Как работает команда who?
- •2.4.1. Мы теперь знаем, как работает who
- •2.5. Вопрос 3: Могу ли я написать who?
- •2.5.1. Вопрос: Как я буду читать структуры из файла?
- •2.5.2. Ответ: Использование open, read и close
- •2.5.3. Написание программы who 1.С
- •2.5.4. Отображение записей о вхождениях в систему
- •2.5.5. Написание версии who2.С
- •2.6. Проект два: Разработка программы ср (чтение и запись)
- •2.6.1. Вопрос 1: Что делает команда ср?
- •2.6.2. Вопрос 2: Как команда ср создает файл и как пишет в него? Создание/транкатенация файла
- •2.6.3. Вопрос 3: Могу ли я написать программу ср?
- •2.6.4. Программирование в Unix кажется достаточно простым
- •2.7. Увеличение эффективности файловых операций ввода/ вывода: Буферирование
- •2.7.1. Какой размер буфера следует считать лучшим?
- •2.7.2 Почему на системные вызовы требуется тратить время?
- •2.7.3. Означает ли, что наша программа who2.С неэффективна?
- •2.7.4. Добавление буферирования к программе who2.С
- •2.8. Буферизация и ядро
- •2.8.1. Если буферизация столь хороша, то почему ее не использует ядро?
- •2.9. Чтение файла и запись в файл
- •2.9.1. Выход из системы: Что происходит?
- •2.9.2. Выход из системы: Как это происходит
- •2.9.3. Смещение текущего указателя: Iseek
- •2.9.4. Кодирование выхода из системы через терминал
- •2.10. Что делать с ошибками системных вызовов?
- •3.1. Введение
- •3.2. Вопрос 1: Что делает команда is?
- •3.2.1. Команда Is выводит список имен файлов и оповещает об атрибутах файлов
- •3.2.3. Наиболее употребимые опции
- •3.2.4. Первый ответ: Итоговые замечания
- •3.3. Краткий обзор дерева файловой системы
- •3.4. Вопрос 2: Как работает команда Is?
- •3.4.1. Что же такое каталог, в конце концов?
- •3.4.2. Работают ли системные вызовы open, read и close в отношении каталогов?
- •3.4.3. Хорошо, хорошо. Но как же мне прочитать каталог?
- •3.5. Вопрос 3: Могу ли я написать Is?
- •3.5.1. Что еще нужно делать?
- •3.6. Проект 2: Написание версии Is -I
- •3.6.1. Вопрос 1: Что делает Is-I?
- •3.6.2. Вопрос 2: Какработает Is -I?
- •3.6.3. Ответ: Системный вызов stat получает информацию о файле
- •3.6.4. Какую еще информацию можно получить с помощью системного вызова stat?
- •3.6.5. Чего мы достигли?
- •3.6.6. Преобразование числового значения поля mode в символьное значение
- •3.6.7. Преобразования числового представления идентификаторов собственника/группы в строковое представление
- •3.6.8. Объединение всего вместе: Is2.C
- •3.7. Три специальных разряда
- •3.7.1. Разряд Set-User-id
- •3.7.2Разряд Set-Group-id
- •3.7.3 Разряд Sticky Bit
- •3.7.4. Специальные разряды nls-l
- •3.8. Итоги для команды is
- •3.9. Установка и модификация свойств файла
- •3.9.1. Тип файла
- •3.9.2. Разряды прав доступа и специальные разряды
- •3.9.3. Число ссылок на файл
- •3.9.4. Собственник и группа для файла
- •3.9.5. Размер файла
- •3.9.6. Время последней модификации и доступа
- •3.9.7. Имя файла
3.1. Введение
Мы знаем, как прочитать содержимое файла и как записать данные в файл. Помимо содержания, файл имеет еще ряд атрибутов. Файл имеет собственника, у файла есть время его последней модификации, размер, тип и другие атрибуты. Как мы можем посмотреть имена файлов и определять свойства файлов? С помощью команды Is можно получать I списки имен файлов в каталоге и информацию о файлах. Мы изучим команду Is. чтобы больше узнать о каталогах и типах файлов, узнать о свойствах файлов.
3.2. Вопрос 1: Что делает команда is?
3.2.1. Команда Is выводит список имен файлов и оповещает об атрибутах файлов
Наберите команду Is. чтобы посмотреть, что она делает.
$Is
Makefile docs Is2.c s.tar statdemo.c taill'.c
chap03 Is1 .c old_src statl .c taill
$
Действие команды Is по умолчанию - вывод списка имен файлов в текущем каталоге. При выводе имена файлов сортируются командой Is в алфавитном порядке. В одних версиях команда располагает список имен поколонно, в других версиях такой вывод выполняется с по-1 мощью опции (используя опцию -С). Помимо имен файлов, команда Is может выводить еще дополнительную информацию о файлах. Если при обращении к команде задается опция, то команда представляет информацию о каждом файле, используя длинный формат:
$ ls-I
total 108
-rw-rw-r—
|
2 bruce
|
users
|
345 Jul 29 11:05 Makefile |
rw-rw-r-- |
1 bruce |
users |
27521 Aug 1 12:14 сhарОЗ |
drwxrwxr-x |
2 bruce |
users |
1024 Aug 1 12:15 docs |
-rw-r-r-- |
1 bruce |
users |
723 Feb 9 1998 Is 1.с |
-rw-r--r-- |
1 bruce |
users |
3045 Feb15 03:51 Is2 с |
drwxrwxr-x |
2 bruce |
users
|
1024 Aug 112:14 old src |
-rw-rw-r-- |
1 bruce |
users
|
30720 Aug 1 12:05 s.tar |
-rw-r--r-- |
1 bruce |
support |
946Feb18l7:15stat1c |
■rw-r-r-- |
1 bruce |
support
|
191 Feb 9 1998 statdemo.c |
-rwxrwxr-x |
1 bruce |
users
|
37351 Aug 1 12:13 taill |
-rw-r-r-- |
1 bruce |
users |
1416Aug 1 12:05 taill с |
$
Каждая строка вывода представляет один файл и содержит несколько атрибутов для каждого файла.
3.2.2. Получение листинга о других каталогах, получение информации о других файлах
В системе Unix находится много каталогов, в каждом из которых собраны собственные на-1 боры файлов. Как быть, если вам понадобится информация о других каталогах и о файлах I в этих каталогах? Можно обратиться к команде Is для получения информации о файлах из I других каталогов, указывая имена каталогов и имена файлов в командной строке:
Запрос на получение информации по Is из других каталогов и об их файлах
|
|
Пример
|
Действие
|
Is/tmp |
Список имен файлов в каталоге /tmр |
Is – I docs |
Показать атрибуты файлов в каталоге docs |
Is – I./ Makefile |
Показать атрибуты. |
Is*.c |
Список файлов, имена которых удовлетворяют шаблону ж.с |
Если в качестве аргумента задан каталог, то команда Is выводит в виде списка его содержимое. Если в качестве аргумента задан файл, то команда Is выводит его имя и, возможно, атрибуты. На то, что может выполнить Is и как будет выглядеть вывод команды Is, указывают опции, которые задаются при обращении к команде.
