Для дальнейшей работы создайте несколько файлов с произвольным текстом с помощью стандартного текстового редактора.
Команды создания файла
Команда
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.
Рисунок 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-ричное число).