Как скопировать и переместить файл в Linux через cp и mv?
Нужно скопировать файл в другую папку и переименовать другой. В терминале вижу команды cp и mv, но путаюсь в порядке аргументов: что откуда куда. Как правильно копировать и перемещать?
2 ответа
Запомни главное правило обеих команд: сначала ОТКУДА, потом КУДА.
Скопировать файл — 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/.
Краткая памятка (направление слева направо, как стрелка →):
cp источник назначение— копировать (оригинал остаётся).cp -r папка назначение— копировать папку.mv источник назначение— переместить (оригинал исчезает).mv старое_имя новое_имя— переименовать.
Если назначение — это существующая папка, файл ляжет внутрь неё. Если назначение — несуществующее имя, файл будет переименован в это имя.