This is a nice shell scripting hack. It allows you to give a progress bar like wget to cp command.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop












{ 12 comments… read them below or add one }
great script function, i have tried something like it before called bar: http://www.theiling.de/projects/bar.html
masterboy,
bar – great find!
This is a good one ..
- http://unixfoo.blogspot.com
It won’t do anything for me. I try to use it and it just come right back to the prompt.
drivesoslow:
same here :(
drivesoslow / Jerod ,
Open a shell prompt and just paste the code. Type the following (it will not work with wildcards)
cp_p /path/to/big/file.ext /copy/hereVivek,
This is cool and all, but the overhead of strace make this not very useful. rsync -av shows a progress bar. You can also get a progress bar if you use scp locally. Yes, scp supports local file transfers without using any network or connecting to a local sshd instance.
jeff@omniscience:~$ du -h windows.tar.bz2 822M windows.tar.bz2 jeff@omniscience:~$ time cp_p windows.tar.bz2{,.new} 99% [====================================================================================================>] real 2m18.957s user 0m11.589s sys 0m23.469s jeff@omniscience:~$ ls window* windows.tar.bz2 windows.tar.bz2.new jeff@omniscience:~$ time cp windows.tar.bz2{,.new2} real 1m39.597s user 0m0.096s sys 0m5.092sHow i can use this script?
LOL at the nubs who can’t get this to work. Go back to your Vista box and stay there.
Only thing I had to do was set my terminal to ANSI. Also, the width of this progress bar is fixed, it will not scale with the width of your terminal.
Also note that for trivial transfers they might complete before the script has a chance to output the progress bar. So if the file copies and you didn’t see a progress bar, it’s because you didn’t need one.
yes scp and rsync are alternatives but this is very cool nonetheless. Thank you for posting it!
Altho my system didn’t support bar I did find pipeview (pv):
srcdir=$1
outfile=$2
tar -Ocf – $srcdir | pv -i 1 -w 50 -berps `du -bs $srcdir | awk ‘{print $1}’` |
7za a -si $outfile
take a look at freebsd utils http://www.freshports.org/sysutils/vcp/. Successfully compiled on Redhat 5.7.
This script doen’t work… And what is it for anyway, rsync does the same job without all this mumbo-jumbo of arkward custom scripts.