Gymterview
junior

Как работать с файлами и директориями из командной строки?

Основные операции с файлами и директориями выполняются командами mkdir, touch, cp, mv и rm.

Создание файлов и директорий

Пример
# Создание директории
mkdir myproject                  # Создать директорию
mkdir -p src/main/java/com/app   # Создать вложенные директории (-p создаёт родительские)
mkdir dir1 dir2 dir3             # Создать несколько директорий сразу

# Создание файлов
touch file.txt                   # Создать пустой файл (или обновить время модификации)
touch file1.txt file2.txt        # Создать несколько файлов

Копирование (cp)

Пример
cp file.txt backup.txt           # Копировать файл
cp file.txt /tmp/                # Копировать файл в другую директорию
cp -r src/ src_backup/           # Копировать директорию рекурсивно
cp -i file.txt dest/             # Спрашивать перед перезаписью (interactive)
cp -v file.txt dest/             # Показывать, что копируется (verbose)
cp -p file.txt dest/             # Сохранить атрибуты (права, время модификации)
cp *.java backup/                # Копировать все .java файлы

Перемещение и переименование (mv)

Пример
mv old.txt new.txt               # Переименовать файл
mv file.txt /tmp/                # Переместить файл
mv dir1/ /opt/dir2/              # Переместить (переименовать) директорию
mv -i file.txt dest/             # Спрашивать перед перезаписью
mv *.log /var/log/archive/       # Переместить все лог-файлы

Удаление (rm)

Пример
rm file.txt                      # Удалить файл
rm -i file.txt                   # Спрашивать перед удалением
rm -f file.txt                   # Удалить без подтверждения (force)
rm -r directory/                 # Удалить директорию рекурсивно
rm -rf directory/                # Удалить рекурсивно без подтверждений
rmdir empty_dir/                 # Удалить ТОЛЬКО пустую директорию

Внимание: команда rm -rf / или rm -rf * крайне опасна и может уничтожить все данные. Всегда проверяйте путь перед удалением. Современные системы блокируют rm -rf / без флага --no-preserve-root, но rm -rf ~/* по-прежнему удалит все ваши файлы без вопросов.

На собеседовании: интервьюер хочет услышать про флаг -p у mkdir (создание цепочки директорий), разницу между cp и mv, а также об осторожности при rm -rf. Частая ошибка — забывать флаг -r при копировании директорий.