Linux复制命令如何显示进度

worktile 其他 33

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux中,复制文件或目录的命令有很多,例如`cp`、`rsync`等。如果你想查看复制命令的进度,有几种方法可以实现。

    一、使用`rsync`命令

    `rsync`是一个功能强大的数据复制工具,可以在复制文件或目录时显示进度。使用`rsync`命令复制文件或目录时,只需添加`–progress`选项即可显示进度。例如,复制一个文件夹`/source`到目标文件夹`/destination`:

    “`
    rsync –progress -r /source /destination
    “`

    `–progress`选项将显示出复制的进度,而`-r`选项表示递归复制文件夹及其内容。

    二、使用`cp`命令和`pv`工具

    `pv`是一个命令行工具,可以用于监控数据流的进度。虽然`cp`命令本身不提供直接显示进度的功能,但可以通过与`pv`工具结合使用来实现这一功能。

    首先,需要确保系统已安装`pv`工具。可以使用以下命令进行安装:

    “`
    sudo apt-get install pv
    “`

    安装完成后,可以使用`cp`命令复制文件,并通过管道将数据流传递给`pv`工具,从而显示进度。例如,复制文件`file.txt`到目标文件夹`/destination`:

    “`
    cp file.txt /destination | pv -lep -s $(stat -c %s file.txt) > /dev/null
    “`

    其中,`-lep`选项用于显示进度百分比、估计剩余时间和传输速度。`-s`选项用于指定源文件的大小。`> /dev/null`是为了将`pv`工具的输出重定向到空设备,防止其显示在终端上。

    三、使用`ProgressBar`命令

    `ProgressBar`是一个命令行工具集,提供了一个可以在终端中显示进度条的库。使用`ProgressBar`可以方便地显示复制进度。首先需要确保系统已安装`ProgressBar`工具,可以使用以下命令进行安装:

    “`
    pip install ProgressBar
    “`

    安装完成后,可以使用以下代码来复制文件并显示进度:

    “`python
    from ProgressBar import ProgressBar
    import shutil

    source = ‘/path/to/source/file.txt’
    destination = ‘/path/to/destination’

    shutil.copy2(source, destination, progress=ProgressBar())
    “`

    以上代码将复制文件`file.txt`到目标文件夹`/destination`,并使用`ProgressBar`来显示进度。

    综上所述,Linux中可以通过使用`rsync`命令、`cp`命令与`pv`工具结合、或者使用`ProgressBar`命令等方式来显示复制命令的进度。根据实际需求,选择合适的方法即可。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux系统中,使用cp命令进行复制操作时,默认情况下不会显示进度。然而,有几种方法可以在复制过程中显示进度。

    1. 使用rsync命令:rsync是一个功能强大的文件复制工具,它可以在复制过程中显示进度。使用rsync进行复制时,可以使用”–progress”选项来显示实时进度。
    例如:rsync –progress source_file destination_file

    2. 使用pv命令:pv(Pipe Viewer)是一个命令行工具,可以在复制过程中显示进度,并且可以用作管道的一部分。可以将pv命令与cp命令结合使用,实现显示复制进度的效果。
    例如:cp source_file destination_file | pv

    3. 使用progress命令:progress是一个Linux命令行工具,用于显示复制、移动和删除等操作的进度。需要先安装progress工具,然后使用”progress”命令即可显示复制进度。
    例如:progress cp source_file destination_file

    4. 使用progress-bar选项:某些Linux发行版中的cp命令支持”-v”选项来显示复制进度条。如果你的Linux系统中的cp命令支持这个选项,可以使用它来显示进度条。
    例如:cp -v source_file destination_file

    5. 使用watch命令:watch命令可以用来监视命令的执行结果,并以规定的时间间隔重复执行。可以结合使用cp命令和watch命令,实现定时显示复制进度的效果。
    例如:watch -n 1 ‘du -sh destination_file’ # 每秒显示一次目标文件的大小

    以上是几种在Linux系统中显示复制进度的方法,可以根据个人需求选择适合的方法来实现复制进度的显示。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux操作系统中,可以使用多种命令来复制文件或目录。其中,最常用的是`cp`命令。然而,`cp`命令默认情况下并不会显示复制的进度。不过,我们可以通过结合`rsync`命令或`pv`工具来实现显示复制进度的功能。

    下面,我将分别介绍如何使用`rsync`命令和`pv`工具来显示复制的进度。

    ## 使用rsync命令显示复制进度

    `rsync`是一个功能强大的文件复制工具,它不仅仅可以用于本地文件的复制,还可以用于跨网络复制文件。它可以提供一个`–progress`选项来显示复制的进度。

    以下是使用`rsync`命令显示复制进度的步骤:

    1. 打开终端,输入以下命令:

    “`bash
    rsync –progress 源文件 目标文件
    “`

    其中,`源文件`为要复制的文件路径,`目标文件`为目标路径,即要复制到的位置。

    2. 执行命令后,`rsync`会显示复制的进度,包括已复制的字节数和总字节数,并且会实时更新进度。

    请注意,`rsync`命令只能用于文件复制,无法用于目录复制。如果要复制整个目录,需要加上`-r`选项,表示递归复制。

    ## 使用pv工具显示复制进度

    `pv`是一个命令行工具,它可以用来监控数据在管道中的流动,并且可以显示进度信息。

    以下是使用`pv`工具显示复制进度的步骤:

    1. 首先,确保`pv`工具已经安装在系统中。如果没有安装,可以使用以下命令来安装:

    “`bash
    sudo apt-get install pv
    “`

    2. 打开终端,输入以下命令:

    “`bash
    cp 源文件 目标文件 | pv -lep -s 源文件大小 > /dev/null
    “`

    其中,`源文件`为要复制的文件路径,`目标文件`为目标路径,即要复制到的位置,`源文件大小`为要复制的文件的大小。

    3. 执行命令后,`cp`命令会将源文件复制到目标文件,并且通过管道(`|`)将复制的数据传递给`pv`工具。`pv`工具会显示复制的进度,包括已复制的字节数和总字节数,并且会实时更新进度。

    请注意,`pv`工具需要将进度信息输出到终端,而不是复制的目标文件。因此,我们将输出重定向到`/dev/null`,以防止进度信息干扰我们的终端界面。

    以上是两种在Linux中显示复制进度的方法。你可以根据自己的需求选择其中一种方法来使用。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部