Копирование файла в Windows — это создание независимого дубликата документа или папки в другом расположении: оригинал остается на месте, а копия существует отдельно от него. Копирование легко спутать с двумя соседними операциями — перемещением (оригинал исчезает из старой папки) и созданием ярлыка (появляется маленький файл-указатель, а не копия данных). Ниже — как их различать и шесть рабочих способов скопировать данные: мышью, горячими клавишами, через Проводник, из командной строки (copy, xcopy, robocopy), в PowerShell и программно на Python.
Содержание
- Копирование, перемещение и ярлык — в чем разница
- Способ 1. Перетаскивание мышью
- Способ 2. Горячие клавиши Ctrl+C / Ctrl+V
- Способ 3. Контекстное меню и Проводник
- Способ 4. Командная строка: copy и xcopy
- Способ 5. robocopy для больших объемов
- Способ 6. PowerShell: Copy-Item
- Копирование файлов программно на Python (shutil)
- Как выбрать способ
- Выводы
- Где применяется / связь с практикой
- FAQ
Копирование, перемещение и ярлык — в чем разница
Три операции внешне похожи, но делают разное. Разберем их до способов, иначе примеры покажутся противоречивыми.
| Операция | Что с оригиналом | Данные на диске | Связь с оригиналом |
|---|---|---|---|
| Копирование | остается на месте | дублируются полностью | нет, копия независима |
| Перемещение | удаляется из старой папки | в пределах одного диска — переписывается только запись в каталоге (быстро); между дисками — копирование, затем удаление | нет |
Ярлык (.lnk) |
остается на месте | почти не занимает (мелкий файл-ссылка) | да; удалите оригинал — ярлык перестанет открываться |
Практический вывод: копирование нужно для резервной копии и переноса на другой носитель, перемещение — для наведения порядка в пределах диска, ярлык — для быстрого доступа к одному и тому же файлу из нескольких мест.
Способ 1. Перетаскивание мышью
Самый наглядный способ. Важная тонкость: результат перетаскивания зависит от диска и удерживаемой клавиши, поэтому его часто путают.
- Перетаскивание в пределах одного диска — по умолчанию перемещение.
- Перетаскивание на другой диск — по умолчанию копирование.
- Удерживать Ctrl при перетаскивании — принудительно копировать (рядом с курсором виден знак «+»).
- Удерживать Shift — принудительно переместить.
- Удерживать Ctrl+Shift (или Alt) — создать ярлык.
Чтобы не запоминать правила, перетаскивайте объект правой кнопкой мыши: при отпускании Windows покажет меню с явным выбором «Копировать», «Переместить» или «Создать ярлыки».
Способ 2. Горячие клавиши Ctrl+C / Ctrl+V
Универсальный способ, который работает и в Проводнике, и в большинстве программ. Выделите файлы (для группы — Ctrl+ЛКМ по каждому или Ctrl+A, чтобы выбрать все в папке), затем:
- Ctrl+C — копировать выделенное в буфер обмена;
- Ctrl+X — вырезать (перемещение: файл встанет в новое место, а из старого исчезнет);
- Ctrl+V — вставить в открытую папку.
Если вставить копию в ту же папку, где лежит оригинал, Windows предложит сохранить обе версии с именем вида «документ — копия». Разница Ctrl+C и Ctrl+X — ровно та же, что копирования и перемещения из таблицы выше.
Способ 3. Контекстное меню и Проводник
Способ без клавиатуры. Кликните по файлу правой кнопкой мыши и выберите «Копировать» (в Windows 11 это иконка двух листов в верхней строке меню), перейдите в нужную папку, снова правая кнопка — «Вставить». То же есть на ленте Проводника: кнопки «Копировать» и «Вставить». Способ удобен, когда рук на клавиатуре нет или нужно именно выбрать действие явно.
Способ 4. Командная строка: copy и xcopy
Командная строка (cmd.exe) полезна для скриптов и повторяющихся задач. Базовая команда copy работает только с файлами и не заходит во вложенные папки:
copy "C:\data\report.docx" "D:\backup\"
Вывод при успехе:
1 file(s) copied.
Для каталогов с вложенными папками используют xcopy:
xcopy "C:\data\project" "D:\backup\project" /E /I /H /Y
Флаги (только ASCII-дефис перед буквой): /E — копировать подпапки, включая пустые; /I — считать, что назначение это папка; /H — брать скрытые и системные файлы; /Y — перезаписывать без подтверждения. Утилита xcopy устаревшая: Microsoft оставляет ее для совместимости, но для новых сценариев рекомендует robocopy.
Способ 5. robocopy для больших объемов
robocopy (Robust File Copy) встроена в Windows начиная с Windows Vista и рассчитана на большие объемы: она устойчива к обрывам, умеет докопировать после сбоя и работать в несколько потоков.
robocopy "C:\data" "D:\backup" /E /Z /R:3 /W:5 /MT:16 /LOG:"D:\copy.log"
Здесь /E — копировать все подпапки, /Z — режим с продолжением после разрыва, /R:3 — до 3 повторов на файл с ошибкой, /W:5 — пауза 5 секунд между повторами, /MT:16 — 16 потоков копирования, /LOG: — писать отчет в файл.
Осторожно с флагом /MIR (зеркало): он не только копирует новое, но и удаляет в приемнике то, чего нет в источнике. Перед /MIR проверьте пути и сделайте резервную копию приемника — ошибка в пути сотрет чужие данные. У robocopy необычные коды возврата: значения от 0 до 7 означают успех (например, 1 — файлы скопированы), а 8 и выше — ошибку; это важно учитывать в скриптах, где принято считать успехом только код 0.
Способ 6. PowerShell: Copy-Item
В PowerShell копирование выполняет командлет Copy-Item. Один файл:
Copy-Item -Path "C:\data\report.docx" -Destination "D:\backup\"
Каталог целиком — с флагом -Recurse:
Copy-Item -Path "C:\data\project" -Destination "D:\backup\project" -Recurse
Copy-Item удобен, когда копирование — часть большого скрипта автоматизации: список файлов легко отфильтровать через Get-ChildItem и передать по конвейеру. Для терабайтных переносов он все же уступает robocopy по скорости и устойчивости.
Копирование файлов программно на Python (shutil)
Когда копирование нужно встроить в программу, а не в системный скрипт, помогает модуль shutil из стандартной библиотеки Python — он работает и в Windows, и в Linux, и в macOS.
import shutil
# копия одного файла БЕЗ метаданных (только данные и права доступа)
shutil.copy("C:/data/report.docx", "D:/backup/report.docx")
# копия файла С метаданными: сохраняет время изменения и создания
shutil.copy2("C:/data/report.docx", "D:/backup/report.docx")
# рекурсивное копирование каталога целиком
shutil.copytree("C:/data/project", "D:/backup/project", dirs_exist_ok=True)
# перемещение = копия + удаление исходника
shutil.move("C:/data/old.docx", "D:/archive/old.docx")
Разница copy и copy2 практическая: copy2 дополнительно переносит временные метки, поэтому для резервных копий обычно берут именно его. Параметр dirs_exist_ok=True в copytree доступен с Python 3.8 — без него команда падает с ошибкой, если папка-приемник уже существует. Ярлык (.lnk) стандартный shutil не создает: это объект самой Windows, для него нужен сторонний пакет (например, pywin32), тогда как копирование и перемещение доступны из коробки.
Как выбрать способ
Ориентируйтесь по задаче, а не по привычке:
- Один-два файла вручную — перетаскивание или Ctrl+C/Ctrl+V.
- Явно выбрать копирование против перемещения — правая кнопка мыши или контекстное меню.
- Повторяющаяся операция в скрипте —
copy/xcopyвcmdилиCopy-Itemв PowerShell. - Большой каталог, сеть, риск обрыва —
robocopyс логом и повторами. - Копирование внутри своей программы —
shutilна Python.
Выводы
- Копирование создает независимый дубликат; перемещение убирает оригинал; ярлык — лишь ссылка на него. Это три разные операции, а не варианты одной.
- Перетаскивание внутри диска по умолчанию перемещает, между дисками — копирует; Ctrl форсирует копию, Shift — перемещение, Ctrl+Shift или Alt — ярлык.
- Для файлов из командной строки подойдет
copy, для деревьев папок —xcopy, для больших и сетевых объемов —robocopy(с оговоркой про/MIR). - В скриптах копируют через PowerShell
Copy-Item, а в программах на Python — черезshutil.copy2иcopytree.
Где применяется / связь с практикой
Освойте тему на практике
Ручное копирование быстро упирается в рутину: ежедневный бэкап, раскладка отчетов по папкам, сборка файлов из десятков источников. Все это автоматизируется кодом — и shutil из примеров выше это первый шаг. Разобраться с файловыми операциями, путями и запуском скриптов по расписанию помогает системное обучение основам языка — например, курс Python Basic, где работа с файлами и модулем shutil разбирается на практике. Посмотреть формат занятий и темы можно на открытых уроках Otus — они бесплатны и проходят онлайн.
Смежные темы: Командная строка: описание, особенности, полезные операции, Командная строка: как активировать файл в Windows, Windows и другие ОС: принципы работы.
FAQ
Как скопировать сразу несколько файлов? Выделите их с зажатым Ctrl (по одному) или рамкой мыши, либо Ctrl+A для всей папки, затем копируйте любым способом — Ctrl+C, контекстным меню или перетаскиванием с Ctrl.
Почему при перетаскивании файл переместился, а не скопировался? Перетаскивание в пределах одного диска по умолчанию перемещает. Чтобы гарантированно скопировать, удерживайте Ctrl во время перетаскивания или перетаскивайте правой кнопкой мыши и выбирайте «Копировать» в меню.
Что делать, если копирование большого объема прерывается? Используйте robocopy с флагами /Z (продолжение после обрыва) и /R:n /W:n (повторы с паузой); она докопирует недостающее, не начиная заново весь объем.



