JavaRush /Курсы /Docker SELF /Создание, удаление, копирование и перемещение файлов: mkd...

Создание, удаление, копирование и перемещение файлов: mkdir, rm, touch, cp, mv

Docker SELF
1 уровень , 6 лекция
Открыта

1. Создание папок и файлов

Работа с файлами и папками — это основа любой операционной системы, включая Linux. Вам нужно будет создавать директории для хранения данных, перемещать файлы в разные места, уничтожать ненужное (и иногда по ошибке нужное, но об этом позже), а также копировать всё это богатство по вашему желанию. Знание базовых команд для управления файлами сделает работу в Linux удобной и быстрой, а также покажет коллегам, что вы настоящий профи.

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

mkdir — создание папок (директорий)

Команда mkdir используется для создания новых директорий (папок).

Синтаксис:

mkdir [имя_папки]

Пример:

mkdir my_folder

Эта команда создаст папку my_folder в текущей директории.

Создание вложенных директорий

Иногда нужно сразу создать несколько вложенных папок. Для этого используем флаг -p:

mkdir -p parent_folder/child_folder/sub_child

Теперь у нас есть папки parent_folder, child_folder внутри неё и sub_child внутри них.

Шуточка-подсказка:

Если забудете флаг -p, Linux напомнит вам, что родительской папки не существует. Всё как в жизни: нельзя создать ребёнка без родителей!


touch — создание пустых файлов

Когда нужно быстро создать файл, используется touch.

Синтаксис:

touch [имя_файла]

Пример:

touch my_file.txt

Файл my_file.txt мгновенно появится в текущей директории. Волшебство, не иначе.

Лайфхак: одновременное создание нескольких файлов

touch file1.txt file2.txt file3.txt

Поздравляю, теперь вы многозадачны!

Интересный факт:

touch не только создаёт файлы, но и обновляет их временные метки (данные о дате создания и изменения файла), даже если они уже существуют.


2. Удаление файлов и папок

Сначала создаём, а потом (иногда со слезами на глазах) удаляем.

rm — удаление файлов

Удаление файлов в Linux происходит через команду rm.

Синтаксис:

rm [имя_файла]

Пример:

rm my_file.txt

Удаление нескольких файлов

rm file1.txt file2.txt

Никаких диалогов и предупреждений. Осторожнее с этой командой!

rm -r — удаление папок

Для удаления папок и их содержимого используется флаг -r (рекурсивность).

Пример:

rm -r my_folder

Особый случай: защита от случайных действий

Если хотите, чтобы Linux спрашивал подтверждение, добавьте флаг -i:

rm -ri my_folder
Типичная ошибка:

Никогда не запускайте rm -rf / (или rm -rf *) без понимания последствий. Это удалит всё. Как говорится, Linux вам доверяет, но потом вы можете об этом пожалеть.


3. Копирование файлов и папок

cp — копирование файлов

Копировать файлы в Linux так же просто, как на рабочем столе.

Синтаксис:

cp [источник] [назначение]

Пример:

cp my_file.txt backup_file.txt

Теперь у вас два файла: my_file.txt и его копия backup_file.txt.

Копирование нескольких файлов в папку

Представьте, что вы хотите перегнать три файла в папку backup:

cp file1.txt file2.txt file3.txt backup/

Рекурсивное копирование папок

Для копирования директорий используйте флаг -r:

cp -r my_folder backup_folder

Это создаст копию всей папки my_folder вместе с её содержимым в backup_folder.


4. Перемещение и переименование

mv — перемещение файлов и папок

Команда mv перемещает файл или папку из одного места в другое.

Синтаксис:

mv [источник] [назначение]

Пример:

mv my_file.txt /home/user/documents/

Теперь файл my_file.txt находится в папке /home/user/documents/.

Переименование с помощью mv

Вы можете использовать ту же команду для переименования файла:

mv old_name.txt new_name.txt
Полезный факт:

В Linux нет отдельной команды для переименования. Мы просто перемещаем файл с новым именем в ту же директорию.


5. Практическое задание

Задание

  1. Создайте структуру папок:
    project/
        data/
        logs/
    
  2. Создайте файлы:
    • README.md в project/.
    • data.csv в project/data/.
  3. Сделайте резервную копию папки project/ в папку backup/.
  4. Переименуйте файл README.md в README_backup.md.
  5. Удалите папку logs/.

Решение


# 1. Создание папок
mkdir -p project/data
mkdir project/logs

# 2. Создание файлов
touch project/README.md project/data/data.csv

# 3. Создание резервной копии
cp -r project/ backup/

# 4. Переименование файла
mv project/README.md project/README_backup.md

# 5. Удаление папки
rm -r project/logs

6. Разбор типичных ошибок

  • Ошибка: mkdir с существующим именем. Если папка уже существует, команда выдаст ошибку. Используйте уникальные имена.
  • Ошибка: Удаление нужных файлов. Если вы случайно удалили важный файл без резервной копии, вернуть его будет крайне сложно.
  • Ошибка с недопустимыми путями. При указании пути убедитесь, что он существует. Например, cp myfile.txt /nonexistent_path/ завершится ошибкой.

Применение в реальной жизни

Понимание управления файлами в Linux пригодится:

  • Разработчикам. Для работы с проектными файлами, резервного копирования и быстрого создания структуры каталогов.
  • Администраторам. Для создания и удаления временных файлов, автоматизации работы с журналами.
  • Студентам. Для удобной организации учебных файлов.

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

mkdir -p project/{src,docs,tests}
touch project/README.md

Теперь вы знаете, как превратить командную строку в волшебную палочку для управления файлами!

1
Задача
Docker SELF, 1 уровень, 6 лекция
Недоступна
Создание папки и файла
Создание папки и файла
1
Задача
Docker SELF, 1 уровень, 6 лекция
Недоступна
Удаление файла и папки
Удаление файла и папки
1
Задача
Docker SELF, 1 уровень, 6 лекция
Недоступна
Копирование и перемещение
Копирование и перемещение
1
Задача
Docker SELF, 1 уровень, 6 лекция
Недоступна
Работа со структурой директорий
Работа со структурой директорий
Комментарии (11)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Ilia Уровень 4
29 июля 2025
напишите уже условие нормальною как описана структура директорий? согласно условию все директории должны лежать на одном уровне, а по факту это дерево с корнем website
Артём Пъ Уровень 32
6 марта 2025
Знаешь, то чувство, когда написал все команды у себя в терминале правильно, проверил все - все работает. Переходишь в валидатор переписываешь каждую команду, запускаешь и.... И пропустил -r в последней строчке.. Уфь
Albert Tazetdinov Уровень 2
4 марта 2025
В описании последнего упражнения плохо описана древовидная структура папок. Думаю, что стоит исправить
Артём Пъ Уровень 32
6 марта 2025
Древовидность папок описана в 1 требовании

Скрипт должен использовать команду `mkdir` 
для создания всех необходимых папок: 
`website`, `website/assets`, `website/assets/css`, 
`website/assets/js`, `website/content`.
Дмитрий Уровень 2
22 августа 2025
Это замечательно, но стоит подправить и другое описание чтобы не было конфликтности описаний.
Viktor Уровень 2
26 февраля 2025
правильно ли я понял что команда: cp file.txt folder/ и команда: mv file.txt folder/ приведут к одному и тому же результату?
Mr. Shmel Уровень 1
26 февраля 2025
Не до конца верно) Ведь копирования (cp - coppy) - это создания точной копии твоего файла где-то ещё (т.е. будет существовать два одинаковых файла) А перемещение (mv - move) - это как вырезать файл из папки А и физически переместить его в папку Б. Т.е. будет существовать только один, оригинальный файл.
Viktor Уровень 2
27 февраля 2025
тогда вопрос по задаче "Копирование и перемещение": после выполнения 3-го пункта (3. Скопируйте файл `readme.txt` из папки `docs` в папку `src`) у нас должно быть по файлу `readme.txt` и в папке `docs` и в папке `src` ? Если это так, то после выполнения 4-го пункта (4. Переместите файл `readme.txt` из папки `src` в корневую папку `project`) у нас все еще остается экземпляр файла `readme.txt` в папке `docs` Почему тогда проходит проверка последнего требования ( Итоговая структура папки `project` после выполнения всех действий должна содержать файл `readme.txt` в корневой директории, а папки `src` и `docs` должны оставаться пустыми.)? Ведь из `docs` файл `readme.txt` мы не перемещали и не удаляли
milyasow Уровень 3
7 мая 2025
Такой валидатор. На коленочке собранный. Привыкайте...
Vladislav Уровень 25
20 февраля 2025
оч круто, что сейчас есть ревью кода в тренажерах
Azat Rashitov Уровень 20
20 февраля 2025
Есть же rename для изменения наименования