как создать индикатор выполнения во время копирования файлов

Добавьте пользователя в sudoers (фактически, новый файл в /etc/sudoers.d, но это та же предпосылка):

niceuser ALL=NOPASSWD:/usr/bin/nice

Затем в качестве "niceuser":

niceuser@localhost $ sudo nice -n -10 command...

и он сделает то, что мне нужно (то есть , теперь мой пользователь может увеличить приоритет команды {command ...}). Он поддерживает несколько пользователей и т. д. - используйте man 5 sudoers для подробностей.

0
27.02.2018, 08:18
2 ответа

En resumen, no encontrará cpfuncionalidad nativa para la salida de la barra de progreso. ¿Por qué? Muchas razones . Sin embargo, tienes algunas opciones:

  1. Use una herramienta diferente. rsync, como lo menciona @user1404316 tiene--progress:

    rsync -P largeFile copyLocation
    
  2. Si no necesita la semántica adicional de la que se encargan cpy rsync, cree un nuevo archivo conpv("Pipe Viewer" )redirigiendostdout:

    pv < largeFile > copyLocation
    
  3. Si necesita la semántica adicional, puede usar progress, aunque no proporciona la barra específicamente. Se adjunta a que ya está ejecutando procesos , por lo que lo invocaría como:

    # In one shell
    $ cp largeFile copyLocation
    
    # In another shell
    $ progress -m
    [ 4714] cp /home/hunteke/largeFile
            1.1% (114 MiB / 10.2 GiB)      # -m tells progress to continually update
    
  4. Otra opción es gcp, que hace exactamente lo que solicitaste con una barra de progreso:

    gcp largeFile copyLocation
    
  5. Otra opción abusa de la capacidad de curlpara manejar file://URL:

    curl -o copyLocation file:///path/to/largeFile
    
  6. Puede escribir un script de shell

6
28.01.2020, 02:14

rsynces un programa de copia que tiene excelentes funciones para copiar archivos grandes, incluida una función --progress, y tiene una forma de compresión en tránsito -para reducir los datos en tránsito (y así ahorrar tiempo para el copiar):

rsync --progress file1 file2

rsynctambién tiene funciones para reanudar una copia que se interrumpió, tal vez debido a una desconexión de la red. Debería iniciarlo con options --partial --append-verify. El único inconveniente que se me ocurre de usar rsyncpara copiar a través de una red es que debe haber sido instalado en ambas computadoras, es decir. el emisor y el receptor. Vea su página manpara detalles y todas sus otras características...

Si no puede instalar rsyncpor alguna razón, o no quiere hacerlo, una buena alternativa simple es pv, un comando visor de tuberías , que hace exactamente lo que está pidiendo por.

pv from-file > to-file

pvtambién incluye muchas opciones de visualización. Consulte su página manpara conocer todas las ventajas disponibles. Estas son algunas de las opciones más utilizadas:

-p, --progress
-t, --timer
-e, --eta
-r, --rate
-a, --average-rate
-b, --bytes
1
28.01.2020, 02:14

Теги

Похожие вопросы