← Все вопросы

Как скопировать и переместить файл в Linux через cp и mv?

Задан 17 месяцев назад341 просмотров2 ответа
8

Нужно скопировать файл в другую папку и переименовать другой. В терминале вижу команды cp и mv, но путаюсь в порядке аргументов: что откуда куда. Как правильно копировать и перемещать?

2 ответа

9
✓ Принятый ответ — помог автору

Запомни главное правило обеих команд: сначала ОТКУДА, потом КУДА.

Скопировать файл — cp (copy):

cp file.txt backup/

Скопирует file.txt в папку backup. Оригинал останется на месте. Чтобы скопировать папку целиком, нужен флаг -r:

cp -r myfolder/ backup/

Переместить или переименовать — mv (move). Перемещение в другую папку:

mv file.txt archive/

А вот фишка: mv тоже переименовывает — отдельной команды rename в bash нет. Чтобы переименовать файл, «перемести» его в новое имя в той же папке:

mv old_name.txt new_name.txt

Разница: cp оставляет оригинал (делает дубликат), mv перемещает (оригинала на старом месте не будет).

Частая ошибка: перепутать порядок и написать cp backup/ file.txt. Всегда: первый аргумент — источник, последний — назначение.

И осторожно: если в папке назначения уже есть файл с таким именем, и cp, и mv перезапишут его без предупреждения. Чтобы получить вопрос перед перезаписью, добавь флаг -i: cp -i file.txt backup/.

3

Краткая памятка (направление слева направо, как стрелка →):

  • cp источник назначение — копировать (оригинал остаётся).
  • cp -r папка назначение — копировать папку.
  • mv источник назначение — переместить (оригинал исчезает).
  • mv старое_имя новое_имя — переименовать.

Если назначение — это существующая папка, файл ляжет внутрь неё. Если назначение — несуществующее имя, файл будет переименован в это имя.

Ваш ответ

, чтобы ответить на вопрос.