linuxcp命令显示进度

worktile 其他 14

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,cp命令用于复制文件和目录。但是,默认情况下,cp命令并不会显示复制的进度。不过,我们可以通过一些方法来实现在命令行中显示cp命令的进度。

    下面是一种常见的方法:

    使用pv命令:
    pv命令是一个用于监视数据流的工具。我们可以将pv命令和cp命令结合起来,以显示复制进度。

    首先,确保你的系统已经安装了pv命令,如果没有安装,可以使用以下命令进行安装:

    sudo apt-get install pv

    安装完成后,我们可以在执行cp命令时,使用管道符将其输出传递给pv命令:

    cp source_file destination_file | pv -lep -s source_file_size > /dev/null

    以上命令中,source_file是源文件的路径,destination_file是目标文件的路径,source_file_size是源文件的大小。

    该命令的含义是,将cp命令的输出通过管道传递给pv命令,-lep选项用于设置进度条的样式,-s选项用于指定源文件的大小,最后的>/dev/null表示将pv命令的输出重定向到/dev/null,这样就不会打印额外的信息到屏幕上。

    执行以上命令后,你将在命令行中看到一个进度条,显示复制的进度。

    除了pv命令,还有一些其他工具也可以实现相同的效果,如progress、gtar等,你可以根据自己的喜好选择适合的工具来显示cp命令的进度。

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

    在Linux中,cp命令用于将文件或目录从一个位置复制到另一个位置。默认情况下,cp命令不会显示正在复制的进度。然而,你可以使用其他的命令或选项来显示复制进度。下面是几种可以显示进度的方法:

    1. 使用rsync命令:rsync是一个功能强大的文件复制工具,它可以显示复制的进度。下面是一个示例:

    “`
    rsync -av –progress source_file destination_file
    “`

    – `-a`选项表示以递归的方式复制文件和目录,并保留文件属性。
    – `-v`选项表示在屏幕上显示正在复制的文件。
    – `–progress`选项表示显示复制进度。

    2. 使用pv命令:pv是一个用于监视数据流的命令行工具。你可以将cp命令的输出通过管道传递给pv命令,以显示进度。下面是一个示例:

    “`
    cp source_file destination_file | pv -lep -s SIZE_OF_SOURCE_FILE >/dev/null
    “`

    – `-l`选项表示在屏幕上显示进度。
    – `-e`选项表示估计剩余时间。
    – `-p`选项表示显示进度百分比。
    – `-s`选项表示指定源文件的大小。
    – `SIZE_OF_SOURCE_FILE`应替换为实际源文件的大小。
    – `/dev/null`是一个特殊的文件,它用于丢弃输出。在这种情况下,我们只对进度感兴趣,不需要复制的数据。

    3. 使用progress命令:progress是一个基于ncurses的命令行工具,用于显示进度。你可以使用progress命令来替代cp命令。下面是一个示例:

    “`
    progress cp source_file destination_file
    “`

    这将使用progress命令复制文件,并在屏幕上显示进度。

    4. 使用watch命令:watch是一个用于监视命令输出的工具。你可以使用watch命令来定期运行cp命令,并显示进度。下面是一个示例:

    “`
    watch -n 1 cp source_file destination_file >/dev/null
    “`

    – `-n 1`选项表示每秒运行一次命令。
    – `/dev/null`是一个特殊的文件,用于丢弃输出。在这种情况下,我们只对进度感兴趣,不需要复制的数据。

    5. 使用bar命令:bar是一个用于显示进度条的命令行工具。你可以使用bar命令替代cp命令,并通过管道传递进度。下面是一个示例:

    “`
    cp source_file destination_file | bar -s SOURCE_FILE_SIZE > /dev/null
    “`

    – `-s SOURCE_FILE_SIZE`选项表示指定源文件的大小。
    – `SOURCE_FILE_SIZE`应替换为实际源文件的大小。
    – `/dev/null`是一个特殊的文件,用于丢弃输出。在这种情况下,我们只对进度感兴趣,不需要复制的数据。

    这些方法提供了多种显示复制进度的选项。你可以根据自己的需求选择适合的方法。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux中,cp命令用于将文件或目录从一个位置复制到另一个位置。默认情况下,cp命令在执行时并不显示复制的进度信息。但是,我们可以使用一些其他方法来实现显示进度的功能。

    下面是三种常用的显示cp进度的方法:

    1. pv命令:
    pv是一个用于显示进度的实用程序。我们可以将pv与cp命令结合使用,将源文件的输出通过管道传递给pv命令,然后再将输出通过管道传递给目标文件。pv命令会显示复制的进度信息,包括已复制的数据量、速度等。以下是使用pv命令显示进度的示例:

    “`
    pv source_file > destination_file
    “`

    这个命令会将source_file的内容复制到destination_file,并显示复制的进度信息。

    2. rsync命令:
    rsync是一个非常实用的文件同步工具,它不仅可以在本地复制文件,还可以在不同主机之间复制文件。rsync命令显示复制进度的功能是默认开启的,我们可以直接使用rsync命令来复制文件,并实时显示复制的进度信息。以下是使用rsync命令显示进度的示例:

    “`
    rsync -a source_file destination_file
    “`

    这个命令会将source_file的内容复制到destination_file,并显示复制的进度信息。

    3. cp命令+pv命令的组合:
    这个方法结合了cp命令和pv命令,通过管道将cp命令的输出传递给pv命令,实现显示进度的功能。以下是使用cp命令和pv命令显示进度的示例:

    “`
    cp source_file destination_file | pv -lep -s $(du -sb source_file | awk ‘{print $1}’) > /dev/null
    “`

    这个命令会将source_file的内容复制到destination_file,并显示复制的进度信息。

    无论使用哪种方法,都可以实现在Linux中显示cp命令的进度信息。根据实际需求选择合适的方法即可。

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

400-800-1024

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

分享本页
返回顶部