In Linux default cp
command does not show any sorts of progress bar when you try to copy the file. This matter sometimes get annoying particularly when you use command line extensively to copy big and huge files over. At least this for me is kind of big matter. Therefore, I did little bit search on the internet to find a solution and found the following suggestions,
1. pv
command
pv
could be a good replacement for cp
and installation is quite easy in Ubuntu but you should know if you use this command all file permissions and ownership would be gone so be careful on use it. In order to install it just type following command,
$ sudo apt-get install pv
2. cp
with some Bash script
In this solution you need to use the following Bash script and you should copy this file over to /bin/ folder in order to be accessed globally and easy like cp
command. The script source code is in the following section,
#!/bin/sh
# SCRIPT: copyx ver 1.0, 14-9-2011
# PURPOSE: Copies files and shows the progress of copying.
# Usage Example: ./copyx my100gbfiles.tar.gz /path/to/destination/my100gbfiles.tar.gz
strace -q -ewrite cp -- "${1}" "${2}" 2>&1 |
awk '{
cal += $NF
if (cal % 10 == 0) {
percentage = cal / totalsize * 100
printf "%3d%% [", percentage
for (i=0;i<=percentage;i++)
printf "="
printf ">"
for (i=percentage;i<100;i++)
printf " "
printf "]\r"
}
}
END { print "" }' totalsize=$(stat -c '%s' "${1}") cal=0
3. rsync
command
rsync
command is another replacement for cp
command which equipped with progress bar and speed indicator which personally I highly recommend it.
$ rsync -avh --progress [Source] [Dest]
4. gcp
command
gcp
is also another command that can be used instead of cp
. You can install gcp
in Ubuntu with the following command,
$ sudo apt-get install gcp