Прогрессбар в cp/mv

Вас никогда не напрягало что при копировании больших файлов с помощь cp не ясно сколько осталось ждать?

Меня напрягало, правда напряголо лениво (ибо замены в виде rsync или чего ещё я не использовал), а тут при обновлении coreutils (что происходит не часто) я об этом вспомнил, и вспомнил не я один...

432 files copied so far...                                                                                   1,7 GiB /   2,0 GiB
[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||-------------------] 83,9 %
Copying at  37,0 MiB/s (about 0h 0m 24s remaining)
all/muzlo/Черный Лукич/2002 - Жаворонок/18_-_Pro_dojdinki.mp3                            3,2 MiB /   7,4 MiB
[|||||||||||||||||||||||||||||||||||||||||||||||||||--------------------------------------------------------------------] 42,6 
@Shu адаптировал патч от 8.4, @borman запилил пакет в AUR. Пакет годный — заменяет родной coreutils без каких-либо телодвижений. В общем yaourt -S coreutils-acp и cp/mv с ключем -g будет показывать прогрессбар...

Полезность сего конечно сомнительная, хотя лично мне такая мелочь приятна...

Пока собирался разместить пост, Minoru уже написал и адаптировал патч для версии coreutils из debian (там сейчас 8.5)
MinimumLaw 10-12-2010
Патч полезный, а вот реализация... Вот ежели б оно было сделано как в dd - т.е. писать статистику при получении сигнала USR1 - это б было дело. А так - озорство. Ключь в нужный момент забудешь поставить...
muhas 10-12-2010
да и сам исходник уже поруган на ЛОРе, но это не мешает быть прогрессбару быть приятным... хотя статистика при получении сигнала была бы лучше
ASLok 10-12-2010
[aslok@3r]2010.12.24-13:43:31:~$ cat .bash_aliases | grep cpf
alias cpf='rsync --progress'
[aslok@3r]2010.12.24-13:44:19:~$
aka_jack 10-12-2010
использую утилиту pv, с тех пор, как про нее на хабре рассказали
Livid 10-12-2010
Да, кстати тоже вариант с pv
tar c "$@" | pv -s$(du -bc "$@" | tail -n1 | cut -f1) | tar x -C destdir

Только придется ждать пока размер файлов пересчитается, в разумных пределах не очень долго.
Патч впрочем тоже вариант.
Ivan1986 11-01-2011
Здорово, прикрутил патч к пакету в убунте в свой ppa - приятная вещь, если повесить алиас в интерактивном шеле на cp/mv, а то в этом дебиане пока для пользователя что-то сделают...
SmiGes 11-01-2011
прикольно конечно, но подтормаживает с ним малёха
muhas 11-01-2011
у мя, слава богам, работает так же как и без...
Dark 11-02-2011
Ребят, расскажите пожалуйста, как этот патч установить в Debian.
Ivan1986 11-02-2011
Dark, взять пакет coreutilc? положить в патчи и собрать
ASLok 11-02-2011
Dark, не морочь себе голову, пропиши в ~/.bash_aliases
alias cpf='rsync --progress'
Этот файл вообще загружается при логине командой, так что подгрузи новую версию командой
. ~/.bash_aliases
И копируй командой cpf файл_откуда файл_куда
Ещё можно сделать функцию для pv и засунуть в тот же файл
cppv(){
pv "$1" > "$2"
}

Тогда копируй командой cppv файл_откуда файл_куда

З.Ы. Соответственно, pv и rsync в пакетах с такими названиями
muhas 11-02-2011
В посте ссылка на Minoru - он как раз дебианщик, и патч у него был для версии дебиановской (хотя может уже и обновили кореутилсы в дебьяне)

а так по сути устанавливается патч так же как и везде, но пожалуй присоеденюсь к ASLok - если нужен минимум или не осилить пересборку с патчем, то pv запользовать проще
Dark 11-02-2011
Раньше приходилось собирать пакеты из исходников, но вот патчить их не приходилось пока. Хочется научиться. Порылся в гугле, кой-чего нашел, но патч накладывается с ошибками. У меня Debian Sqeeze, сoreutils_8.5-1. Может я чего делаю не так? Вот мой краткий "лог":

mkdir coreutils-drc
cd coreutils-src
apt-get source coreutils
wget http://ix.io/1kI # тот самый патч
patch -p1 < 1kI
patching file src/copy.c
Hunk #1 FAILED at 457.
Hunk #2 FAILED at 709.
Hunk #3 FAILED at 791.
3 out of 3 hunks FAILED -- saving rejects to file src/copy.c.rej
patching file src/copy.h
Hunk #1 FAILED at 223.
Hunk #2 FAILED at 281.
2 out of 2 hunks FAILED -- saving rejects to file src/copy.h.rej
patching file src/cp.c
Hunk #1 FAILED at 139.
Hunk #2 FAILED at 176.
Hunk #3 FAILED at 612.
Hunk #4 FAILED at 754.
Hunk #5 FAILED at 785.
Hunk #6 FAILED at 923.
Hunk #7 FAILED at 975.
7 out of 7 hunks FAILED -- saving rejects to file src/cp.c.rej
patching file src/mv.c
Hunk #1 FAILED at 64.
Hunk #2 FAILED at 159.
Hunk #3 FAILED at 298.
Hunk #4 FAILED at 366.
Hunk #5 FAILED at 411.
5 out of 5 hunks FAILED -- saving rejects to file src/mv.c.rej
muhas 11-02-2011
а вот не знаю, спроси в блоге у minoru - может он до кучи и пакет выложит. патч для 8.5 где он брал(или сам адаптировал) не знаю
Dark 11-02-2011
Ок, спрошу. Спасибо.