File copying

In digital file management, copying is a file operation that creates a new file which has the same content as an existing file. Computer operating systems include file copying methods to users; operating systems with graphical user interfaces (GUIs) often providing copy-and-paste or drag-and-drop methods of file copying. Operating systems may have specialized file-copying APIs are usually able to tell the server to perform the copying locally, without sending file contents over the network, thus greatly improving performance.

Description
File copying is the creation of a new copy file which has the same content as an existing file.

Shadow
There are several different technologies that use the term shadowing, but the intent of shadowing within these technologies is to provide an exact copy (or mirror of a set) of data. For shadowing to be effective, the shadow needs to exist in a separate physical location than the original data. Depending on the reasons behind the shadow operation, this location may be as close as the BIOS chip to the RAM modules, a second harddrive in the same chassis, or as far away as the other side of the globe.

Use
All computer operating systems include file copying provisions in the user interface, like the command, "cp" in Unix and "COPY" in DOS; operating systems with a graphical user interface, or GUI, usually provide copy-and-paste or drag-and-drop methods of file copying. File manager applications, too, provide an easy way of copying files.

Implementation
Internally, however, while some systems have specialized application programming interfaces (APIs) for copying files (like CopyFile and CopyFileEx in Windows API), others (like Unix and DOS) fall back to simply reading the contents of the old file and writing it to the new file.

This makes little difference with local files (those on the computer's hard drive), but provides an interesting situation when both the source and target files are located on a remote file server. Operating systems with specialized file copying APIs are usually able to tell the server to perform the copying locally, without sending file contents over the network, thus greatly improving performance. Those systems that have no comparable APIs, however, have to read the file contents over the network, and then send them back again, over the network. Sometimes, remote file copying is performed with a specialized command, like "NCOPY" in DOS clients for Novell NetWare. The COPY command in some versions of DR-DOS since 1992, has built-in support for this. An even more complicated situation arises when one needs to copy files between two remote servers. The simple way is to read data from one server, and then to write the data to the second server.