Создание и удаление файлов
Создание и удаление файлов и директорий в терминале — команды touch, mkdir, rm, cp, mv для управления файловой системой без GUI.
Зачем нужно
Работа в терминале быстрее GUI для рутинных операций: создать компонент, перенести папку, удалить артефакты сборки. Знание этих команд необходимо для написания скриптов автоматизации, работы с CI/CD и SSH-сессий на серверах.
Где используется
- Scaffolding — быстрое создание структуры нового проекта
- Скрипты очистки: удаление
dist/,node_modules/, временных файлов - CI/CD пайплайны — создание директорий перед деплоем
- Переименование и перемещение файлов при рефакторинге
Создание файлов
# Создать пустой файл (или обновить timestamp если существует)
touch index.ts
touch src/components/Button.tsx
# Создать файл с содержимым
echo "export default {}" > config.js
echo "# My Project" > README.md
# Создать файл с многострочным содержимым (heredoc)
cat > .env.example << 'EOF'
NODE_ENV=development
PORT=3000
DATABASE_URL=
JWT_SECRET=
EOF
# Скопировать файл
cp .env.example .env
cp src/Button.tsx src/ButtonV2.tsx
Создание директорий
# Создать директорию
mkdir src
mkdir dist
# Создать вложенные директории (-p = parents, не ошибаться если существует)
mkdir -p src/components/ui
mkdir -p .husky
# Создать несколько директорий сразу
mkdir -p src/{components,hooks,utils,types}
# → создаёт src/components, src/hooks, src/utils, src/types
Удаление файлов
# Удалить файл
rm file.txt
rm src/old-component.ts
# Удалить несколько файлов
rm file1.txt file2.txt
rm *.log # все .log файлы в текущей директории
# Удалить с подтверждением каждого (-i = interactive)
rm -i important.txt
# Принудительно без подтверждения (-f = force)
rm -f generated.js
Удаление директорий
# Удалить пустую директорию
rmdir empty-folder
# Удалить директорию со всем содержимым (-r = recursive)
rm -r dist/
rm -r node_modules/
# Принудительно и рекурсивно (осторожно!)
rm -rf dist/
rm -rf .cache/
# Очистка перед сборкой (типичный скрипт)
rm -rf dist && npm run build
Перемещение и переименование
# Переместить файл (mv = move)
mv old-name.ts new-name.ts # переименовать
mv src/Button.tsx src/components/ # переместить в папку
# Переместить директорию
mv old-folder/ new-folder/
# Переместить несколько файлов в папку
mv *.ts src/
Копирование директорий
# Скопировать директорию рекурсивно (-r)
cp -r src/ src-backup/
# Скопировать с сохранением прав и времени (-a = archive)
cp -a dist/ release/
Практические паттерны
# Создать структуру React компонента
mkdir -p src/components/Button
touch src/components/Button/index.tsx
touch src/components/Button/Button.module.css
touch src/components/Button/Button.test.tsx
# Очистить артефакты сборки
rm -rf dist/ .cache/ coverage/
# Создать .gitkeep чтобы git отслеживал пустую директорию
mkdir -p logs
touch logs/.gitkeep
Частые ошибки
rm -rf /илиrm -rf ~/— удаляет всю файловую систему или домашнюю директорию. Всегда проверяй путь перед-rfrm -r node_modulesбез-f— долго из-за запросов подтверждения на каждом файлеmkdir src/components/uiбез-p— ошибка еслиsrc/componentsне существуетmv file.tsбез назначения — ошибка синтаксиса, нужен destination- Удаление
.envвместо.env.example— потеря локальных секретов без возможности восстановления