File copying

In the realm of computer file management, file copying is the creation of a new file which has the same content as an existing file.

All computer operating systems include file copying provisions in the user interface, like the command, "cp" in Unix and "copy" in MS-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.

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 MS-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 MS-DOS clients for Novell NetWare.

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. 

See also