Для дальнейшей работы создайте несколько файлов с произвольным текстом с помощью стандартного текстового редактора.

Команды создания файла

Команда

touch имя_файла

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

>имя_файла

создает файл нулевого размера (буквально: в этот файл перенаправляется вывод из ниоткуда).

Создание каталога

Команда

mkdir имя_директории

создает новый каталог. Если используется в следующем формате (mkdir имя_директории1 имя_директории2 имя_директории3), создаст папки: имя_директории1, имя_директории2 и имя_директории3.

Копирование файла в другой файл или каталог

cp файл-источник файл-или-каталог-приемник

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

UNIX рассчитана на профессиональных пользователей. Предупреждений по поводу удаления файлов не выводится.

Рекурсивное копирование каталога в другой каталог

cp -R каталог-источник каталог-приемник

Перемещение/переименование файла или каталога

Команда

mv файл-или-каталог-источник файл-или-каталог-приемник

используется для перемещения или переименования файлов или каталогов. Если в качестве аргументов заданы имена двух файлов, то имя первого файла будет изменено на имя второго (mv file1 file_1). Если последний аргумент является именем существующего каталога, то mv перемещает все заданные файлы в этот каталог (mv file ./dir/).

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

Ключи, использующиеся с mv:

§ –f, не запрашивать подтверждения операций.

§ –i, выводить запрос на подтверждение операции, когда существует файл, в который происходит переименование или перемещение.

§ – –, завершает список ключей. Применяется для использования с файлами, имена которых начинаются на –.

Символические связи

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

Создание символической связи:

ln -s сущестсвующий_файл файл_связь

(Файл с именем файл_связь не должен существовать.)

Жесткие связи

В файловой системе UNIX имя файла является указателем на индексный дексриптор (i-node), который содержит атрибуты файла и массив адресов дисковых блоков, в которых находятся данные файла. Однако файл может иметь несколько имен. Дексриптор содержит только счетчик числа этих имен, значение которого показывается во второй колонке листинга ls -l.

Для дальнейшей работы создайте несколько файлов с произвольным текстом с помощью стандартного текстового редактора. - student2.ru

Рисунок 2 – Организация жесткой связи

Создание жесткой связи - это создание еще одного имени, ссылающегося на тот же самый индексный дескриптор:

ln сущестсвующее_имя_файла новое_имя_файла

Удаление файлов и каталогов

rm имя_файла

удаляет файл, но не каталог;

rmdir имя_каталога

удаляет каталог, только если он пуст;

rm -r имя_каталога

удаляет каталог рекурсивно (т.е. со всеми подкаталогами), но просит подтверждения при удалении файлов, в которые у вас нет права записи (поскольку для удаления файла достаточно иметь право записи в его каталог);

rm -rf имя_каталога

удаляет каталог рекурсивно и молча.

Удаление файла на самом деле представляет собой уменьшение на 1 счетчика его имен в индексном дескрипторе; соответствующий системный вызов называется unlink(2). Физически файл удаляется системой, если он закрыт и если счетчик имен равен нулю. Это свойство используется программистами при создании временных файлов: после создания файла функцией open сразу же вызывается unlink, сбрасывающий счетчик имен в 0. Пока файл открыт, его можно использовать (через файловую переменную, возвращенную функцией open; имени у файла уже нет). После вызова close файл автоматически уничтожается.

Изучение содержимого файла

Команда

file имя_файла [имя_файла ...]

определяет тип файла путем анализа его содержимого

Выполните:

Определите тип всех файлов вашего домашнего каталога и каталога prog.

Расширение файла (часть имени после точки) в Unix не имеет никакого специального значения. Например, для запуска файла требуется не расширение типа .exe, а право на исполнение.

Команда

cat имя_файла

- выводит содержимое файла на терминал.

Команда

more имя_файла

- пейджер (выводит файл постранично, с остановом). Фактически, команда man формирует текст справки и пропускает его через more. Поэтому команды управления прокруткой текста см. выше в описании man.

Команда

tail [-число] имя_файла

выводит последние 10 строк файла или сколько указано.

Команда

head [-число] имя_файла

выводит первые 10 строк файла или сколько указано.

Команда

od имя_файла

выводит файл в восьмеричном виде. Ключи:

-Nчисло - вывести только указанное число первых байт,

-jчисло - пропустить указанное число первых байт,

-j0xчисло - пропустить указанное число первых байт (число является 16-ричным),

-tx - вывести в шестнадцатеричном виде,

-с - вывести каждый байт в виде символа (непечатные символы отображаются как спецсимволы языка Си: \t,\n,\b,\f,\r,\0, либо как трехзначное 8-ричное число).

Наши рекомендации