1

If I run

cp file1 file2

I'd like to be able to track it's progress. Is there a command I can use for this?

rsync --progress

has this, but is there something generic, usable for "any" command?

3 Answers 3

6

You can use pv to see the progress of any command that can transfer data through pipes.

See e.g. http://www.catonmat.net/blog/unix-utilities-pipe-viewer/ for explanations. This will not work for cp however, as it does not operate via pipes.

Beyond that, there's no general mechanism I am aware of. It would be difficult, since "progress" can mean different things to different commands.

BTW, cp has an option -v which lists files as they are copied, that can give you a rough idea of its progress.

Edit:

Though it might not directly answer your question: You can also just use a graphical file manager. Most provide a nice progress bar when copying / moving files (e.g. KDE's konqueror does).

1

try append --verbose to commmands you are interested in, this will generally produce more infomation on progress.

0

(Perhaps not quite what you're asking since it won't work for any command, but) to get a progress meter for cp, I sometimes (ab)use scp:

scp localhost:/path/to/source_file /path/to/destination

You will need the "localhost:" prefix on either the source or destination so scp won't fall back to a standard cp.

2
  • While this will work, it might be less efficient because you incur additional overhead for the network-transfer (even though it only uses the localhost pseudo-network-interface). However, as long as the copy is IO-bound, this will probably not matter.
    – sleske
    Sep 22, 2011 at 8:07
  • At any rate, OP already uses rsync --progress for seeing progress during a copy operation.
    – sleske
    Aug 19, 2014 at 7:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .