Манипулирование файлами и каталогами #
Все данные в классических операционных системах представлены в виде файлов. При работе с командным интерфейсом необходимо уметь выполнять любые операции над файлами: копировать, перемещать, переименовывать и так далее. Постараемся получить навыки и знания по данной тематике.
Создание и удаление каталогов #
Документация #
Для создания каталогов используется приложение mkdir
:
mkdir data images
Команда создаст каталоги data
и images
в текущем рабочем каталоге.
Полную информацию по использованию приложения mkdir
можно получить из документации.
Для удаления пустых каталогов используйте приложение rmdir
:
rmdir empty temp
Команда удалит пустые каталоги empty
и temp
в текущем рабочем каталоге.
Полную информацию по использованию приложения rmdir
можно получить из документации:
Задачи #
- В домашнем каталоге пользователя создайте каталог
base
. - Внутри данного каталога создайте подкаталоги
make
,love
,not-war
. - Внутри каталога
make
создайте каталогit
. - Внутри каталога
love
создайте каталогit
. - Внутри каталога
not-war
создайте каталогhidden weapon storage
.
Для выполнения задачи не забывайте о возможности смены текущего рабочего каталога. Какой каталог будет наиболее эффективным для решения задачи?
Если вы случайно создали неправильный каталог, тогда удалите его с помощью rmdir
.
В результате у вас должна получиться следующая структура каталогов:
base/
├── love/
│ └── it/
├── make/
│ └── it/
└── not-war/
└── hidden weapon storage/
Для проверки структуры каталогов можно воспользоваться приложением ls
с аргументом -R
:
> ls -R base
base:
love make not-war
base/love:
it
base/love/it:
base/make:
it
base/make/it:
base/not-war:
'hidden weapon storage'
'base/not-war/hidden weapon storage':
По завершению задания удалите все созданные каталоги с помощью команды rmdir
.
Создание пустых файлов и удаление файлов #
Документация #
Для создания пустых файлов используется приложение touch
:
touch some/major-data.txt
Создаёт пустой файл major-data.txt
в подкаталоге some
текущего рабочего каталога.
Детали использования приложения можно узнать в официальной документации:
Для удаления файлов используется приложение rm
:
rm file.txt info/some-document.doc
В результате выполнения команды будут удалены файлы file.txt
и some-document.doc
, находящийся в подкаталоге info
.
Приложение также может удалять каталоги рекурсивно, включая всех подкаталоги вложенные файлы:
rm -r data images
В результате выполнения команды будут удалены каталоги data
, images
и всё их содержимое.
Детали работы приложения можно узнать в документации:
Задача #
Создайте следующую структуру из файлов и каталогов:
test/
└── images/
├── 2015-05-30/
│ ├── IMG-5357.JPG
│ ├── IMG-5358.JPG
│ └── IMG-5359.JPG
└── 2016-09-10/
├── IMG-5935.JPG
├── IMG-5938.JPG
└── IMG-5939.JPG
В примере только файлы с расширением JPG
являются пустыми текстовыми.
После выполнения упражнения удалите все созданные каталоги и файлы рекурсивно.
Копирование файлов #
Документация #
Для копирования файлов и каталогов используется приложение cp
:
cp cat.png cute_cat.png
После выполнения команды будет создан файл cute_cat.png
, являющийся копией cat.png
.
Приложение cp
может за одно действие также копировать несколько файлов в целевой каталог, а также манипулировать целыми каталогами. Для копирования набора файлов в целевой каталог применяется следующая форма вызова приложения:
cp cat.png dog.jpg raccon.jpg cute-animals
В результате выполнения команды изображения с животными будут перенесены в подкаталог cute-animals
.
Ввиду особенностей применения cp
: один или множество файлов, копирование файлов или директорий, существует или нет целевой каталог — передать семантику работы приложения достаточно сложно. Обычно поведение cp
понятно, однако будьте аккуратны.
Более подробно о возможностях cp
можно прочитать в документации:
Задачи #
С помощью приложений mkdir
и touch
создайте следующую структуру каталогов:
cp-test/
├── data-one/
│ └── three.txt
├── data-two/
├── first.txt
└── second.txt
Только файлы с расширением txt
являются пустыми текстовыми файлами.
- Скопируйте файл
three.txt
в каталогdata-two
. - Скопируйте файлы
first.txt
иsecond.txt
в каталогdata-two
. - Скопируйте все файлы из каталога
data-two
в каталогdata-one
. - Скопируйте каталог
data-two
в каталогdata-two-backup
. - Скопируйте каталог
data-one
в подкаталогdata-two-backup
. - Создайте каталог
all-data-backup
. Скопируйте в него каталогиdata-one
иdata-two
.
Перенос и переименование файлов #
Документация #
Для переноса файлов и каталогов между каталогами используется приложение mv
:
mv today-photos photos/2020-05-13
В результате выполнения команды каталог today-photos
будет перемещён внутрь каталога photos
и переименован в 2020-05-13
.
Переименование является частным вариантом перемещения: внутри одного каталога перемещение файла фактически его переименовывает.
По сложности команда mv
проще чем cp
.
Подробно о возможностях приложения mv
можно прочитать в документации:
Задачи #
В качестве основы для данного задания используйте начальное состояние:
cp-test/
├── data-one/
│ └── three.txt
├── data-two/
├── first.txt
└── second.txt
Только файлы с расширением txt
являются пустыми текстовыми файлами.
- Перенесите файл
first.txt
в каталогdata-one
. - Переименуйте каталог
data-two
в каталогdata-three
. - Перенесите файл
three.txt
и файлsecond.txt
в каталогdata-three
. - Перенесите каталог
data-one
внутрь каталогаdata-three
.
Интерактивное приложение для манипулирования файлами #
Для решения ряда задач иногда полезно прибегнуть к специализированным приложениям, которые предоставляют специализированный интерфейс для манипулирования файлами. Ввиду их специализации ряд действий над файлами в них производить проще по сравнению с командным интерфейсом. Рекомендуется добавить и их в арсенал доступных вам приложений.
Наиболее известным примером приложения является Midnight Commander, mc
. Можно прочитать документацию:
- Файловая оболочка MC: Midnight Commander
- Midnight Commander - консольный файловый менеджер под Linux
Для установки приложения в операционной системе ALT Linux нужно:
- Авторизоваться в системе под учётной записью
root
. - Обновить кеш пакетов для установки, выполнив комаду:
apt-get update
. - Установить приложение, выполнив команду
apt-get install mc
.
Для запуска приложения используйте команду mc
.
Далее в курсе мы будем использовать обычные консольные приложения для манипулирования файлами, но также рекомендуется ознакомиться и с оболочками Midnight Commander.
Графические файловые менеджеры #
Помимо псевдографических приложений существует множество графических двухпанельных файловых менеджеров. Они отличаются как по способу представления информации, так и по способу взаимодействия с пользователями. Для ознакомления рекомендуется воспользоваться приложением Double Commander..
Для установки приложения в операционной системе ALT Linux нужно:
- Авторизоваться в системе с правами суперпользователя
root
. - Обновить кеш пакетов для установки с помощью команды:
apt-get update
. - Установить приложение, выполнив команду
apt-get install doublecmd-gtk
.
Для запуска приложения используйте команду doublecmd
.
Закрепление материала по всем командам #
Выполним ряд действий на манипулирование файлами. После выполнения каждого шага проверяйте содержимое каталога playground
и всех его внутренних каталогов, чтобы проверить корректность выполнения вами команд.
Использование приложений командного интерфейса #
- Создайте каталог
playground
в домашнем каталоге пользователя. - Внутри данного каталога создайте каталоги
dir1
иdir2
. - Скопируйте файл
/etc/passwd
в созданный каталогplayground
. - Повторите последнюю операцию, использовав параметр
-v
. - Повторите последнюю операцию, использовав параметр
-i
. - Переименуйте файл
passwd
вfun
. - Переместите файл
fun
в каталогdir1
. - Переместите файл
fun
в каталогdir2
. - Переместите файл
fun
в каталогdir1
. - Переместите каталог
dir1
в каталогdir2
. - Верните каталог
dir1
и файлfun
в каталогplayground
. - Удалите каталог
playground
.
Использование файловых менеджеров #
Решите предыдущую задачу с помощью файлового менеджера Midnight Commander.