Копирование файла в файл

Обновлено: 04.07.2024

Размеры жестких дисков и занимаемые объемы данных постоянно увеличиваются. В свое время, диски на 40 мегабайт казались достаточно большими. Сейчас же, диски измеряются уже не только в гигабайтах, но и в терабайтах. И даже их, порой, не хватает. Однако, увеличение размеров не только стало приятным известием для пользователей, но и породило ряд проблем. Одной из таких проблем стало копирование файлов.

Раньше процесс копирования заключался в копировании небольших групп файлов, поэтому стандартного механизма было вполне достаточно. Сегодня, стандартный механизм уже не может обеспечить той мощности, которая требуются. Это и ограничение по скорости копирования для больших размеров, и фоновый режим, и автоматическое продолжение копирования для съемных дисков, и фильтры, и проверка результата, и многое другое. Отсутствие необходимых функций породило класс программ для копирования файлов, чьей задачей является сделать процесс копирования максимально гибким и настраиваемым.

В рамках данной статьи были рассмотрены несколько бесплатных утилит. Тестирование проводилось на коллекции музыки в 21,7 Гб. Среди важных критериев для отбора лучших бесплатных программ были: скорость, надежность, простота использования и нестандартные функции.

Примечание: Необходимо понимать разницу между утилитами копирования и программами для резервного копирования. У них разная задача, несмотря на то, что их можно использовать как для копирования, так и для создания резервных копий. В случае программ копирования, основной упор делается именно на сам процесс, а именно на гибкость и управляемость копирования данных. И как следствие, нет никаких особых функций для сравнения контента файлов и для отслеживания добавленных/удаленных файлов. В случае утилит для резервного копирования, основной упор больше идет на сохранение идентичности существующих копий. И как следствие, отсутствие особых функций для управления процессом копирования. Конечно, в этом случае, копирование тоже должно быть быстрым, просто сам процесс не является приоритетным.

Обзор бесплатных программ для копирования файлов

Программа FastCopy отличный менеджер копирования файлов

FastCopy - Лучшие бесплатные программы для копирования файлов

FastCopy это один из лучших менеджеров для копирования файлов. Когда дело доходит до вопросов стабильность и скорости, FastCopy оказывается впереди своих конкурентов, хоть и не всегда с большим отрывом. Программа так же остается ресурсоемкой. Даже при установке кэша в 64 Мб, утилита все время передачи использовала стабильно низкое количество оперативной памяти. Не было ни одного значительного скачка в потреблении ресурсов. Так что ее смело можно использовать для частого копирования больших объемов данных.

Утилита так же позволяет интегрироваться в стандартную оболочку и поддерживает 64-разрядные версии Windows. FastCopy можно запустить и без установки, что определенно делает ее привлекательной для пользователей, которым иногда нужно скопировать большие объемы файлов. Однако, программа никак не заменяет стандартный механизм копирования Windows. Этот факт необходимо учитывать.

Есть много отличных функций и сторон у данной программы, однако нельзя сказать, что FastCopy безупречна, и тому есть несколько причин.

Во-первых, деинсталляция программы несколько запутана. Необходимо зайти в каталог, где установлена утилита, и уже оттуда запустить инсталлятор и выбрать удаление интегрированных компонентов. При этом в стандартном инструменте для удаления программ (через панель управления) данную программу не найти. Этот момент немного настораживает. Зачем такая сложность? Конечно, возможно были какие-то проблемы со созданием инсталлятора, но бесплатных аналогов вроде достаточно.

Во-вторых, интеграция с оболочкой должна выставляться настройками через меню, а не через инсталляцию из программы, которая так же удаляется только из самой программы, раз уж программа не заменяет стандартный механизм копирования.

Тем не менее, не смотря на несколько устарелый интерфейс, сама функциональность реализована достаточно приятно. Вы даже можете настроить скрытие окна копирования в системном трее. После чего, будет достаточно навести курсор на значок в трее, чтобы увидеть текущий статус копирования. Кроме того, у программы есть встроенный инструмент для безопасного удаления данных, который выполняет до трех проходов перезаписи данных.

Программа определенно заслуживает внимания и опережает по мощности своих конкурентов. Тем не менее, она явно не предназначена для неопытных пользователей.

Программа UltraCopier с автоматическим продолжением копирования файлов

Ultracopier - Лучшие бесплатные программы для копирования файлов

UltraCopier имеет некоторые довольно интересные функции, включая возобновление копирования файлов для ранее отключенного USB устройства. Представьте, вы запустили копирование большого количества файлов на флешку. Во время процесса, вам вдруг понадобилось срочно отлучиться. И вы, торопясь, вытащили флешку и пошли по своим делам. А когда вернулись, то после подключения флешки, копирование продолжилось с того места, на котором было остановлено. При этом все происходит в автоматическом режиме, от вас ничего не требуется. Согласитесь, что такая функция определенно вызывает интерес.

Конечно, у программы есть и другие достоинства и полезные функции, такие как ограничение скорости копирования. Да и сам интерфейс программы выглядит достаточно привлекательно. Программа имеет открытый исходный код и поддерживает несколько платформ, включая Windows, Mac и Linux.

Примечание: Однако, стоит внимательно выбирать версию, так как версии Ultimate платные, несмотря на открытость проекта.

К сожалению, на некоторых компьютерах данная утилита постоянно зависает. Возможно это единичные случае, но, тем не менее, они возможны.

UltraCopier больше понравится неопытным пользователям, так как процесс организован достаточно просто и нет никакой чехарды с установкой.

Программа копирования файлов Unstoppable Copier лидер по надежности

Unstoppable Copier Лучшие бесплатные программы для копирования файлов

Следующая программа называется Unstoppable Copier. Ее смело назвать лидером по надежности в данном классе программ. Утилита не только копирует файлы быстрее, чем стандартный механизм Windows, она так же в состоянии восстановить частичные файлы с поврежденных носителей или испорченных областей жесткого диска.

Конечно, это программа не творит чудеса, однако, Unstoppable Copier смогла восстановить файлы с нескольких поцарапанных DVD дисков, которые не смогла скопировать Windows. Программа поддерживает не только одиночное копирование, но и пакетный режим, настройки которого можно сохранять.

К сожалению, программа никак не интегрируется с оболочкой Windows. В портативной и версии с инсталлятором, для запуска копирования необходимо запустить саму программу. Скорее всего, авторы просто не рассчитывали на то, что такая интеграция кому-нибудь может понадобиться.

Unstoppable Copier предоставляет достаточно неплохой отчет о процессе копирования. В нем можно найти найти не только размер и имя файлов, но и информацию о состоянии самих данных, что особенно необходимо при копировании с поврежденных носителей. Программа поддерживает множество языков, включая русский, что, несомненно, дает ей определенный плюс.

В целом, благодаря своей уникальной способности восстанавливать поврежденные файлы, программу можно назвать самой надежной из тестируемых. Если рассматривать с точки зрения пользователей, то программа вполне подойдет даже неопытным пользователям.

Программа TeraCopy удобный инструмент для клонирования файлов

TeraCopy - Лучшие бесплатные программы для копирования файлов

TeraCopy - еще одна программа данного класса. В интернете написано много жалоб о стабильности данной программы, поэтому тестирование было более жестким. Дошло вплоть до закрытия процесса из диспетчера задач, с последующим повторным запуском копирования тех же файлов. И за все время тестирования, не было каких-то проблем. Каждый раз TeraCopy дела то, что от нее требовалось. Хотя, возможно все проблемы проявляются только при определенных обстоятельствах.

Программа обладает достаточно приятным интерфейсом и интегрируется с оболочкой Windows. Однако, стоит заметить, что по функциональности, TeraCopy отстает от своих аналогов. Вы не сможете ни ограничить скорость передачи, ни создать несколько пакетных задач. Да и количество настроек сильно ограничено.

Если говорить в целом, то TeraCopy простая и интуитивно понятная программа для копирования файлов. Она подойдет пользователям любого уровня.

Другие программы копирования файлов

Кроме рекомендованных программ для копирования файлов, стоит так же упомянуть SuperCopier и KillCopy, так как обе эти программы являются стабильными и надежными. Обе быстрее, чем стандартный механизм копирования Windows. Программы запускаются из системного трея и требуют мало ресурсов. KillCopy немного быстрее и имеет больше опций для опытных пользователей. Но, интерфейс лучше у SuperCopier, и он в чем то похож на UltraCopier.

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Копирует существующий файл в новый файл.

Перегрузки

Копирует существующий файл в новый файл. Перезапись файла с тем же именем не разрешена.

Копирует существующий файл в новый файл. Перезапись файла с тем же именем разрешена.

Copy(String, String)

Копирует существующий файл в новый файл. Перезапись файла с тем же именем не разрешена.

Параметры

Имя целевого файла. Это не может быть имя каталога или имя существующего файла.

Исключения

У вызывающего объекта отсутствует необходимое разрешение.

-или- Параметр sourceFileName или destFileName определяет каталог.

Параметр sourceFileName или destFileName имеет значение null .

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.

В sourceFileName или destFileName указан недопустимый путь (например, ведущий на несопоставленный диск).

Не удалось найти sourceFileName .

-или- Произошла ошибка ввода-вывода.

Параметр sourceFileName или destFileName имеет недопустимый формат.

Примеры

В следующем примере файлы копируются в папку резервного копирования C:\archives\2008. В нем используются две перегрузки Copy метода следующим образом:

Сначала используется File.Copy(String, String) перегрузка метода для копирования текстовых файлов (.txt). В коде показано, что эта перегрузка не допускает перезаписи уже скопированных файлов.

Затем она использует File.Copy(String, String, Boolean) перегрузку метода для копирования изображений (.jpg файлов). В коде показано, что эта перегрузка разрешает перезапись уже скопированных файлов.

Комментарии

Этот метод эквивалентен Copy(String, String, Boolean) перегрузке метода с overwrite параметром, для которого задано значение false .

Копирование файлов - одна из задач, наиболее часто возникающих перед пользователями персонального компьютера. Конечно, можно открыть файловый менеджер, войти в нужную папку и скопировать файл с помощью контекстного меню - тут не о чем говорить. Но в этой статье я хотел бы рассмотреть копирование файлов в Linux с помощью терминала.

Не всегда есть доступ к файловому менеджеру: из-за различных поломок графическая оболочка на домашнем компьютере может быть недоступна, а на серверах используется только консольный интерфейс. К тому же копирование файлов Ubuntu через терминал намного эффективнее, и вы сами в этом убедитесь. Сегодня мы рассмотрим не только обычное копирование командой cp Linux, но и не совсем обычное: с помощью tar и find.

Утилита копирования файлов cp

Название утилиты cp - это сокращение от Copy, что означает копировать. Утилита позволяет полностью копировать файлы и директории.

Синтаксис и опции

Общий синтаксис cp выглядит вот так:

$ cp опции файл-источник файл-приемник

$ cp опции файл-источник директория-приемник/

После выполнения команды файл-источник будет полностью перенесен в файл-приемник. Если в конце указан слэш, файл будет записан в заданную директорию с оригинальным именем.

Утилита имеет несколько интересных опций, которые могут сильно помочь при нестандартных задачах копирования, поэтому давайте их рассмотрим:

  • --attributes-only - не копировать содержимое файла, а только флаги доступа и владельца;
  • -f, --force - перезаписывать существующие файлы;
  • -i, --interactive - спрашивать, нужно ли перезаписывать существующие файлы;
  • -L - копировать не символические ссылки, а то, на что они указывают;
  • -n - не перезаписывать существующие файлы;
  • -P - не следовать символическим ссылкам;
  • -r - копировать папку Linux рекурсивно;
  • -s - не выполнять копирование файлов в Linux, а создавать символические ссылки;
  • -u - скопировать файл, только если он был изменён;
  • -x - не выходить за пределы этой файловой системы;
  • -p - сохранять владельца, временные метки и флаги доступа при копировании;
  • -t - считать файл-приемник директорией и копировать файл-источник в эту директорию.

Примеры копирования файлов в linux

Теперь, когда вы знаете основные опции, можно перейти к практике. Например, мы хотим скопировать некую картинку из домашней папки в подкаталог pictures:

Или можем явно указать имя новой картинки:

Копирование папок осуществляется с помощью ключа -r:

После выполнения этой команды копирования

/папка будет скопирована в папку

/Документы. Главное, не забывайте поставить слэш в конце выражения или использовать опцию -t. Иначе папка

/документы будет перезаписана.

По умолчанию команда cp Linux перезаписывает существующие файлы или папки, но можно заставить утилиту спрашивать, нужно ли перезаписывать каждый файл, если вы не уверены в правильности составления команды:

Есть и противоположная опция -n, означающая "никогда не перезаписывать существующие файлы".

Опция -u полезна в следующем случае: вы знаете или предполагаете, что в директории, куда копируется файл, есть старая его версия, тогда оператор -u выполнит замену на новую версию:

Сp также поддерживает специальные символы замены * и ?. Например, следующая команда скопирует все файлы, начинающиеся на test:

Если нужно применить более сложные регулярные выражения, придётся комбинировать утилиту cp с find или egrep.

В случае, если важно сохранить права доступа к файлу и его владельца, нужно использовать опцию -p:

Для упрощения использования команды можно применять синтаксис фигурных скобок. Например, чтобы создать резервную копию файла, выполните:

Будет создан файл с таким же именем и расширением .bak

По умолчанию в cp не отображается прогресс копирования файла, что очень неудобно при работе с большими файлами, но его можно легко посмотреть с помощью утилиты cv.

Копирование файлов по регулярным выражениям в Linux

В утилите find можно применять различные условия и регулярные выражения для поиска файлов. Я уже немного писал о ней в статье как найти новые файлы в Linux. Мы можем скопировать все найденные с помощью find файлы, вызвав для каждого из них команду cp. Например, копируем все файлы в текущей директории, содержащие в имени только цифры:

find . -name 8 -exec cp <>

Здесь точка указывает на текущую директорию, а параметр name задает регулярное выражение. Параметром exec мы задаем, какую команду нужно выполнить для обнаруженных файлов. Символ <> - подставляет имя каждого файла.

Но не find'ом единым такое делается. То же самое можно получить, запросив список файлов директории в ls, отфильтровав его по регулярному выражению egrep и передав имена файлов по очереди в cp с помощью xargs:

/ | egrep '[a-zA-Z]' | xargs cp -t

Это не совсем удобный способ копировать файлы Linux, но всё же он возможен. Будут скопированы все файлы из домашней директории, содержащие в имени только английские буквы.

Копирование содержимого файлов в Linux

Вы можете не только копировать сами файлы, но и управлять их содержимым. Например, склеить несколько файлов в один или разрезать файл на несколько частей. Утилита cat используется для вывода содержимого файла, в комбинации с операторами перенаправления вывода Bash вы можете выполнять копирование содержимого файла Linux в другой файл. Например:

cat файл1 > файл2

Если файл был не пустым, он будет перезаписан. Или мы можем склеить два отдельных файла в один:

cat файл1 файл2 > файл3

Специальное копирование файлов в Linux с помощью tar

Linux интересен тем, что позволяет выполнять одно и то же действие различными путями. Копирование в Linux тоже может быть выполнено не только с помощью cp. При переносе системных файлов в другой каталог, резервном копировании системных файлов и т.д. важно чтобы сохранились атрибуты, значения владельцев файлов и символические ссылки как они есть без какой-либо модификации.

tar cf - /var | ( cd /mnt/var && tar xvf - )

Здесь мы полностью копируем содержимое папки /var в папку /mnt/var. Так вы можете копировать папку Linux, причём абсолютно любую или даже целую операционную систему.

Выводы

Теперь вы знаете, как выполняется копирование файлов Ubuntu и в Linux в целом. Как видите, в терминале это выполняется намного быстрее и эффективнее, чем с помощью графического интерфейса, если помнить нужные команды. Если у вас остались вопросы, спрашивайте в комментариях!

COPY - Копирование одного или нескольких файлов из одного расположения в другое.

Синтаксис

Параметры

Параметр Описание
/d Сохранение копируемых шифрованных файлов как расшифрованных в месте назначения
/v Проверка правильности копирования путем сравнения копий файлов
/n Использование короткого имени (при наличии) копируемого файла, если его имя превышает 8 символов или его расширение превышает 3 символа
/y Отмена вывода запроса на подтверждение перезаписи существующего конечного файла
/-y Вывод запроса на подтверждение перезаписи существующего конечного файла
/z Копирование файлов по сети в режиме перезапуска
/a Указание текстового файла в формате ASCII
/b Указание двоичного файла. источник Обязательный параметр. Задание расположение файла или набора файлов, которые требуется скопировать. Параметр источник может состоять из имени диска с двоеточием, имени папки, имени файла или их комбинации. назначение Обязательный параметр. Задание расположения, в которое требуется скопировать файл или набор файлов. Параметр назначение может состоять из имени диска с двоеточием, имени папки, имени файла или их комбинации
/? Отображение справки в командной строке

Примечания

Примеры использования

Чтобы скопировать файл Memo.doc в файл Letter.doc на текущем диске и убедиться, что символ конца файла находится в конце скопированного файла, введите следующую команду:

Чтобы скопировать файл Robin.typ с текущего каталога на текущем диске в существующий каталог Birds на диске C, введите следующую команду:

Если каталог Birds не существует, файл Robin.typ будет скопирован в файл с именем Birds в корневой каталог диска C.

Чтобы скопировать несколько файлов в один, перечислите несколько файлов в параметре источник, разделяя их имена значком плюс (+), и укажите в параметре назначение файл, который должен содержать результат объединения этих файлов. Например, чтобы объединить файлы Mar89.rpt, Apr89.rpt и May89.rpt из текущего каталога на текущем диске и поместить их в файл Report в текущем каталоге на текущем диске, введите следующую команду:

При объединении команда copy создает конечный файл с текущими датой и временем. Если параметр назначение не указан, файлы объединяются и сохраняются в файле с именем первого файла в списке. Например, чтобы объединить четыре файла в файле Report, если такой файл уже существует, введите следующую команду:

Кроме того, несколько файлов можно объединить в один с помощью символов подстановки (* или ?). Например, чтобы объединить все файлы с расширением .txt в текущем каталоге на текущем диске в файл Combin.doc, введите следующую команду:

Если требуется объединить несколько двоичных файлов в один с использованием подстановочных знаков, воспользуйтесь параметром /b. В результате CTRL+Z не будет рассматриваться как символ конца файла в Windows XP. Например, введите следующую команду:

Если объединяются двоичные файлы, результат может оказаться непригодным из-за нарушения внутреннего форматирования.

В следующем примере команда copy объединяет каждый файл с расширением .txt с соответствующим ему файлом с расширением .ref. Результатом является файл с тем же именем, но с расширением .doc. Таким образом, команда copy объединит файлы File1.txt и File1.ref в файл File1.doc, затем файлы File2.txt и File2.ref в файл File2.doc и т. д. Например, введите следующую команду:

Читайте также: