Is (Ubuntu) Linux file copying algorithm better than Windows 7?
The standard copy
builtin in Windows isn't very good, but Windows comes with two advanced commands that are far more efficient: xcopy
and robocopy
. Especially when you need full control over advanced filesystem features like ACLs or alternate data streams, robocopy
is the tool of choice.
As an example, if you are copying a large directory structure, you may wish for the target to be unfragmented. The standard invocation of robocopy
is already quite good at that, but since directory entries are updated as subdirectories get created, you can still get fragmented directories. To prevent that, you can run robocopy
in two passes, the first of which only creates the target directory structure without copying any file content, and the second to actually copy the file bodies.
Altogether, robocopy
is very efficient and fully aware of NTFS features.
Some of the speed you see from Ubuntu Linux is probably file caching. As far as I know, file copy in Linux makes no effort to minimize the use of file cache.
With Linux when you copy a file that is smaller than about 50% of your RAM, the entire file is copied into file cache and then written to disk as time permits. This appears to be very fast, but it forces other more useful files out of cache. These might be web cache files, emails, configuration files, font files, etc.
Windows XP used to copy without regard for file cache also. But in Windows Vista, Microsoft changed Explorer so that when it copies it uses a limited amount of file cache. This reduces the impact of large file copies on the rest of the system. But it also reduces the speed of even relatively small file copies to the speed of the hard disk.
In Windows, use Teracopy - it will solve the overall stupidity problem that Explorer has.
In Ubuntu, I found file copying to be very fast.
Still the "File Opertion" dialog does not go away when you are using removable drives. If you try to safely eject the drive immediately after the dialog disappears, you will get some error message. Data gets through though.
Update: Windows file operations are slow probably of all the integration with services and registry. Nautilus (in Gnome) is just a simple process I guess or at least does not have the load/interruptions that Explorer has.