Linux下显示CP MV传输进度的方式

前言:在Linux默认CP MV命令在传输是没有显示进度,在一些场景下又想查看传输速度,下面通过安装两个命令来实现CP MV命令在传输文件时显示进度。

第一个使用progress命令

Centos7安装progress命令

[root@localhost aihuidi]# wget http://mirrors.sohu.com/centos/7/infra/x86_64/infra-common/Packages/p/progress-0.13-1.el7.x86_64.rpm
[root@localhost aihuidi]# rpm -ivh  progress-0.13-1.el7.x86_64.rpm
[root@localhost ~]# cp meepo-install_20230208_v1.tar.gz /tmp/

查看传输进度,新开终端执行下面任意一条查看

[root@localhost ~]# progress -M -w
[root@localhost ~]# watch -n1 progress -w

第二个使用advcpmv

下载
https://github.com/jarun/advcpmv
在这里插入图片描述使用脚本一键安装

vi install.sh
#!/bin/sh
set -e
ADVCPMV_VERSION=${1:-0.9}
CORE_UTILS_VERSION=${2:-9.1}
curl -LO http://ftp.gnu.org/gnu/coreutils/coreutils-$CORE_UTILS_VERSION.tar.xz
tar xvJf coreutils-$CORE_UTILS_VERSION.tar.xz
yum -y install patch
yum install binutils -y
yum install gcc gcc-devel gcc-c++ -y
rm coreutils-$CORE_UTILS_VERSION.tar.xz
(
cd coreutils-$CORE_UTILS_VERSION/
curl -LO https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-$ADVCPMV_VERSION-$CORE_UTILS_VERSION.patch
patch -p1 -i advcpmv-$ADVCPMV_VERSION-$CORE_UTILS_VERSION.patch
export FORCE_UNSAFE_CONFIGURE=1
./configure
make
cp ./src/cp ../advcp
cp ./src/mv ../advmv
)
rm -rf coreutils-$CORE_UTILS_VERSION

遇到的问题
1、
-bash: patch: command not found
解决方法:

yum -y install patch

2、

configure: error: in `/root/aihuidi/coreutils-9.1':
configure: error: C compiler cannot create executables

解决方法:

[root@localhost coreutils-9.1]#  yum install binutils -y
[root@localhost ~]# yum install gcc gcc-devel gcc-c++ -y

3、

checking whether mknod can create fifo without root privileges... configure: error: in `/root/aihuidi/coreutils-9.1':
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)

解决方法:

[root@localhost coreutils-9.1]# echo "export set FORCE_UNSAFE_CONFIGURE=1" >> /etc/profile
[root@localhost coreutils-9.1]# source /etc/profile
[root@localhost coreutils-9.1]# echo "export set FORCE_UNSAFE_CONFIGURE=1" >> ~/profile
[root@localhost coreutils-9.1]# source ~/profile

查看传输进度

[root@localhost aihuidi]# ./advcp -g /root/meepo-install_20221207_v1.tar.gz /tmp/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: cpmv都是Linux系统中的命令,用于文件或目录的复制和移动。 cp命令用于复制文件或目录,它会将源文件或目录复制到指定的目标位置,并保留原文件或目录的属性和权限。使用cp命令时,源文件或目录不会被删除。 mv命令用于移动文件或目录,它会将源文件或目录移动到指定的目标位置,并且可以更改文件或目录的名称。使用mv命令时,源文件或目录会被删除,只有目标位置上的文件或目录会保留。 因此,cpmv的主要区别在于,cp是复制文件或目录,而mv是移动文件或目录。同时,mv还可以更改文件或目录的名称。 ### 回答2: cpmvLinux 系统中都是常用的文件或目录操作命令,但是它们的使用场景是不同的。 cp ,全称为 copy,表示复制文件或目录。其基本语法为:cp 源文件或目录 目标目录 。可以看出, cp 命令有2个参数,第一个参数为要复制的源文件或目录,第二个参数为复制到的目标目录。如果将源文件或目录复制到当前目录下,则可以省略目标目录的路径。使用 cp 命令会生成一个新的文件或目录副本,源文件或目录并不会被删除或移动。 mv 全称为 move,表示移动文件或目录或者修改文件或目录名称。其基本语法为:mv 源文件或目录 目标目录 。可以看出, mv 命令也有2个参数,第一个参数为要移动或修改名称的源文件或目录,第二个参数为目标目录或目标文件名(目标文件名可以与源文件名相同)。使用 mv 命令可以将一个文件或目录从一个目录移动到另一个目录中,或者将文件或目录重命名。 既然 mv 命令可以用来移动文件和目录,是不是就可以替代 cp 呢?答案是不行,这是因为在移动或修改文件或目录名称时,源文件或目录会被删除或重命名。如果要保留一个文件或目录的原始副本,并在另一个目录中创建一个新副本,就需要使用 cp 命令。 总之,cp 命令用于创建源文件或目录的副本,而 mv 命令用于移动或重命名源文件或目录。两者虽然有相似的使用方式,但是在实际操作时应谨慎选择,加深理解和使用,可以避免因错误使用命令而导致的不良后果。 ### 回答3: 在Linux系统下,cpmv都是常见的命令,用于复制和移动文件或目录。虽然都是操作文件的命令,但它们还是有着一些不同的使用和特点。 1. 命令格式 cp命令的格式为:cp [options] [source_file] [target_file或target_directory] mv命令的格式为:mv [options] [source_file或source_directory] [target_file或target_directory] 可以看到,cp命令需要指定源文件和目标文件或目录,而mv命令则是指定要操作的文件或目录的原名称和目标名称。 2. 复制和移动 cp命令主要用于复制,可以将指定的文件或目录(包括其子目录和文件)复制到目标位置。如果目标位置已经存在同名文件或目录,则会覆盖它。 mv命令则是用于移动或重命名文件或目录。可以将指定的文件或目录移动到目标位置,也可以将它们重命名为目标名称。如果目标位置已经存在同名文件或目录,则会将其覆盖。 3. 操作文件权限 在复制文件时,cp命令会保留文件的权限设置,即权限、属主和所属组都会被复制下来。而在移动文件时,mv命令可以改变文件的权限设置。 4. 文件大小 当复制或移动大文件时,cp命令可能需要更长的时间来完成操作。而mv命令则可以非常快速地完成操作,因为它只是改变文件的指针,而不是实际拷贝文件。因此,如果要将文件移动到同一个分区内的新位置或重命名文件,最好使用mv命令。 总的来说,cpmv命令在Linux系统中都非常常用,但它们又有各自的使用场景和特点。了解他们的区别可以更好地使用这些命令来管理和操作文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值