Текст домашнего задания 2
- Создать папку
animalsв/home - Создать подпапки
dogs,cats,fishвanimals - Добавить файлы:
pluto→ dogs,nemo→ fish,garfield→ cats - В
/tmpсоздать файлadam - Скопировать
adamв/home/humans(создать директорию) - Создать файл
evAв/tmp - Переместить с переименованием
evA→/opt/eve - Переместить
eveв/home/humans - Проверить наличие
adamиeveв/home/humans - Сохранить историю:
history > /tmp/history.txt && export_file /tmp/history.txt
Пошаговое решение с объяснениями
Шаг 1: Создание структуры animals
[root@localhost ~]# mkdir -p /home/animals/dogs
[root@localhost ~]# mkdir /home/animals/cats
[root@localhost ~]# mkdir /home/animals/fish
Почему -p только у первой? Первая команда создаёт сразу /home/animals/ и /home/animals/dogs/. После этого /home/animals уже существует — для cats и fish -p не обязателен (хотя и не навредит).
Шаг 2: Создание файлов животных
[root@localhost ~]# cd /home/animals
[root@localhost animals]# touch dogs/pluto
[root@localhost animals]# touch cats/garfield
[root@localhost animals]# touch fish/nemo
После cd можно использовать относительные пути. touch dogs/pluto создаёт файл pluto внутри уже существующей папки dogs.
Шаг 3: Файл adam в /tmp
[root@localhost animals]# touch /tmp/adam
Абсолютный путь — независимо от текущей директории.
Шаг 4: Создание /home/humans и копирование adam
[root@localhost animals]# mkdir /home/humans
[root@localhost animals]# cp /tmp/adam /home/humans/
Внимание: сначала создаём директорию, потом копируем. Если /home/humans не существует, команда упадёт.
Шаг 5: Создание evA и перемещение
[root@localhost animals]# touch /tmp/evA
[root@localhost animals]# mv /tmp/evA /opt/eve
Команда mv с другим именем назначения — это одновременное перемещение и переименование. Файл evA переезжает в /opt/ с именем eve.
evA (с большой A), а не eva. В Linux это разные имена.
Шаг 6: Переместить eve в /home/humans
[root@localhost animals]# mv /opt/eve /home/humans/
Шаг 7: Проверка
[root@localhost animals]# ls /home/humans/
adam eve
Шаг 8: Сохранение истории
[root@localhost animals]# history > /tmp/history.txt && export_file /tmp/history.txt
&& — выполнить вторую команду только если первая завершилась успешно. export_file — специфичная команда JSLinux для скачивания файла.
Проверка структуры
# Структура animals:
ls -R /home/animals/
# /home/animals/:
# cats dogs fish
# /home/animals/cats:
# garfield
# /home/animals/dogs:
# pluto
# /home/animals/fish:
# nemo
# Содержимое humans:
ls /home/humans/
# adam eve