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при копировании директорий.