Terminal command vs. GUI drag & drop when copying large no. of files: Any tangible benefit

command linefile-copy

I'm finding myself in a terminal more and more often these days as I learn to do certain types of things quicker or more conveniently.

However, when it comes to copying a large amount of data (i.e. hundreds of gigabytes) from one HDD to another, I always revert to the GUI (Nautilus or Finder in my case; the file systems are ext4 or HFS+).

What I have in mind is the initial copying of data to a new larger HDD that's replacing an older one, or to an external back-up HDD.

Are there any tangible benefits to be had using terminal commands in this setting? If so, what are they?

EDIT

Sometimes with these large GUI copies it'll get tripped up somewhere along the way due to a corrupt file or for some other reason. I guess I was wondering if terminal commands, rather than the GUI method, can avoid this problem. It's often quite difficult to determine where the GUI copy has got to, where to resume, and which files are causing the issues.

To my eyes at least, these copies seem a little bit random as to where they start and end.

Best Answer

I don't really see a difference between copying many files and other tasks, usually what makes the command line more attractive is

  • simple tasks which are trivial enough for you to do on the command line, so that using the GUI would be a waste of time (faster to type a few characters than click in menus, if you know what characters to type);
  • very complex tasks which the GUI just isn't capable of doing.

There's another benefit I see to the command line in one very specific circumstance. If you're performing a very long operation, like copying many files, and you may want to check the progress while logged into your machine remotely, then it's convenient to see the task's progress screen. Then it's convenient to run the task in a terminal multiplexer like Screen or Tmux. Start Screen, start the task inside Screen, then later connect to your machine with SSH and attach to that Screen session.

Related Question