Я могу переместить файлы с этой командой:
mv -t /mnt/hdd /home/me/movies/movie1.avi /home/me/movies/movie2.avi
Проблема, что она не показывает прогресса вообще, таким образом, я не знаю, составляет ли операция сделанный 1% или сделанных 80%.
Я знаю, что rsync может показать прогресс.
Таким образом, как был бы, rsync изменение той команды выше похоже, также показывая ход операции?
Спасибо
Вы можете использовать Coreutils Progress Viewer progress
. После установки 1 sup> просто отправьте процесс mv
в фоновый режим и предоставьте progress
его PID:
mv -t /path/to/file1 /path/to/file2 & progress -mp $!
Используйте progress -w
, чтобы отобразить список всех запуск процессов coreutils с их прогрессом. Смотрите man progress
и его страницу github для большего количества опций и примеров.
Далее читаем с множество различных подходов:
Как я могу перемещать файлы и просматривать прогресс (например, с помощью индикатора выполнения)?
1: Если вы используете Ubuntu 14.04, вам, к сожалению, придется собирать программное обеспечение самостоятельно, см. Приведенную выше связанную страницу github. Sup>
mv
только переименовывает ссылку на inode, при перемещении файла/каталога в той же файловой системе [раздел]mv
копирует файл/каталог и после того удаления исходного между файловыми системами [разделы].В Вашем примере Вы перемещаетесь в другую файловую систему, таким образом, rsync
сделает то же задание (копирование). Можно добавить команду для удаления исходного дерева каталогов впоследствии (когда Вы уверены, что копирование действительно работало). Это может быть сделано в сценарии оболочки (который позволяет некоторый ручной контроль, по крайней мере, пока Вы не чувствуете себя в безопасности с операцией).
От man rsync
-P The -P option is equivalent to --partial --progress. Its pur‐
pose is to make it much easier to specify these two options for
a long transfer that may be interrupted.
There is also a --info=progress2 option that outputs statistics
based on the whole transfer, rather than individual files. Use
this flag without outputting a filename (e.g. avoid -v or spec‐
ify --info=name0) if you want to see how the transfer is doing
without scrolling the screen with a lot of names. (You don’t
need to specify the --progress option in order to use
--info=progress2.)
Выполните то же rsync
командная строка снова, и если это ничего не передает, файлы, копируется, и можно удалить исходные файлы или дерево каталогов.
Копия с rsync
$ ls -l
totalt 2064196
-rw------- 1 sudodus sudodus 1921843200 apr 26 18:44 orig.iso
-rw-rw-r-- 1 sudodus sudodus 191889408 maj 23 2016 test.iso
$ rsync --info=progress2 -Ha *.iso /tmp
2,113,732,608 100% 171.10MB/s 0:00:11 (xfr#2, to-chk=0/2)
Проверьте (если Вы желаете),
$ rsync --info=progress2 -Ha *.iso /tmp
0 0% 0.00kB/s 0:00:00 (xfr#0, to-chk=0/2)
Удалите файлы и каталоги с
rm -r *.iso # remove the same as the source in the rsync command line
Это было бы похоже:
rsync -aP /home/me/movies/movie1.avi /home/me/movies/movie2.avi /mnt/hdd
Пример:
~ rsync -aP /usr/bin/{free,man} /tmp
sending incremental file list
free
18,808 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=1/2)
man
107,008 100% 102.05MB/s 0:00:00 (xfr#2, to-chk=0/2)