Справочник

cp, mv, rm и mkdir: копировать, переносить и удалять файлы в Linux

Четыре команды для работы с файлами на сервере: cp копирует, mv переносит и переименовывает, mkdir создаёт папки, rm удаляет. У rm нет корзины, поэтому перед удалением делайте копию — ниже показано, как.

Обновлено 11.10.2026≈ 6 мин чтения
Содержание 8

Что сделать прямо сейчас

  1. Перейдите в нужную папку и посмотрите, что в ней: cd /var/www/example.com, затем ls -la — как это сделать.
  2. Перед правкой файла сделайте копию: cp file.txt file.txt.bak.
  3. Перед удалением папки сделайте её копию: cp -a old-site old-site.bak.
  4. Удаляйте с подтверждением: rm -i file.txt — rm спросит, и нужно ответить y.
  5. Если команда ответила ошибкой, найдите её в таблице ниже.

mkdir: создать папку

КомандаЧто сделает
mkdir backupсоздаст папку backup в текущей папке
mkdir -p backup/2026/octoberсоздаст всю цепочку папок разом
mkdir -p backupне ответит ошибкой, если папка уже есть
mkdir -m 750 privateсоздаст папку сразу с правами 750

Без -p mkdir отвечает ошибкой со словами File exists, если папка уже есть, и No such file or directory, если нет папки уровнем выше. Что значат права вроде 750 — в статье Права на файлы в Linux: rwx, 644 и 755.

cp: скопировать

Сначала пишут, что копировать, потом — куда.

КомандаЧто сделает
cp file.txt file.bakкопия файла рядом, под новым именем
cp file.txt backup/копия файла в папку backup с тем же именем
cp -r site site-copyкопия папки со всем содержимым
cp -a site site-copyто же, но с сохранением прав, владельца и дат
cp -i file.txt backup/спросит, прежде чем заменить файл с тем же именем
cp -n file.txt backup/не заменит файл, который уже есть
cp -v file.txt backup/покажет, что скопировано

Без -i и -n cp молча заменяет файл с тем же именем в папке назначения. Для папки сайта удобнее -a: копия получит те же права и владельца, что и оригинал. Чтобы сохранить владельца чужих файлов, команде нужны права администратора — запускайте её с sudo.

mv: переименовать или перенести

КомандаЧто сделает
mv old.txt new.txtпереименует файл
mv file.txt backup/перенесёт файл в папку backup
mv old-site new-siteпереименует папку — ключ -r не нужен
mv -i file.txt backup/спросит, прежде чем заменить файл
mv -n file.txt backup/не заменит файл, который уже есть

Как и cp, без -i и -n mv молча заменяет файл с тем же именем. Если указать несколько ключей из -i, -f и -n, сработает последний.

rm: удалить

В терминале нет корзины: удалённый файл пропадает сразу. Вернуть его можно только из резервной копии — Резервные копии сайта.

КомандаЧто сделает
rm file.txtудалит файл
rm -i file.txtспросит про каждый файл
rm -I *.logспросит один раз, если файлов больше трёх
rm -r old-siteудалит папку со всем содержимым
rmdir empty-dirудалит папку, только если она пустая
rm -v file.txtпокажет, что удалено

rm -i задаёт вопрос вида rm: remove regular file 'file.txt'?. Наберите y и нажмите Enter — файл удалится. Ответ n оставит файл на месте.

Чтобы не удалить лишнего

  1. Перед rm -r посмотрите, что внутри: ls -la old-site.
  2. Пишите полный путь и перечитайте его перед Enter. Лишний пробел внутри пути превращает его в два разных пути, и rm удалит не то.
  3. Не добавляйте -f по привычке: этот ключ отключает все вопросы, а про несуществующие файлы rm промолчит.
  4. Если в имени есть , сначала посмотрите, что под него подходит: ls .log, и только потом rm *.log.

Корень / rm сам не удаляет — защита --preserve-root включена по умолчанию. Но от удаления папки сайта или домашней папки она не спасает.

Файл, имя которого начинается с минуса

rm примет такое имя за ключ. Поставьте перед именем -- или ./:

rm -- -file.txt
rm ./-file.txt

Ошибки и как их исправить

ОтветЧто значитЧто сделать
rm: cannot remove 'images': Is a directoryэто папка, а не файлдля папки нужен rm -r images
cp: -r not specified; omitting directory 'images'папку копируют только с ключомcp -r images images-copy
rmdir: failed to remove 'images': Directory not emptyпапка не пустаяпосмотрите ls -la images; удалить всё — rm -r images
cp: cannot stat 'x': No such file or directoryтого, что копируете, нетпроверьте имя и папку командой ls
rm: cannot remove 'x': No such file or directoryтакого файла нетпроверьте имя и большие буквы
cp: missing destination file operand after 'file.txt'не сказано, куда копироватьдопишите второй путь
cannot move … to a subdirectory of itselfпапку переносят внутрь неё самойвыберите папку назначения снаружи
Permission deniedнет прав на файл или папку назначенияPermission denied в Linux

Источники

Сверено 11 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 11.10.2026