配置cp、mv命令显示进度和速度
Linux中配置cp和mv命令显示进度条和速度
Linux中,cp和mv命令都是由coreutils软件包安装的。
在Linux中cp或者mv命令操作大文件时,会出现等待的过程,但这两个命令都没有提供可以查看命令进度的参数,所以我们可以通过Github上的开源项目advcpmv来实现cp和mv命令在操作大文件的时候带上进度条。
1. 创建普通用户
全程必须使用普通用户操作并配置sudo,如果用root用户操作,后续编译安装会报错。
# 创建普通用户 useradd ord_user -g root
2. 配置sudo权限
切换到root用户,命令行输入 visudo
,即可直接进入/etc/sudoers
的编辑页面。
visudo
忽略掉其他配置信息,直接查看底部如下信息:
解释下每一列的含义:
- 第一列表示用户名,如
root
、ubuntu
等;- 第二列,等号左边的
ALL
表示允许从任何主机登录当前的用户账户;- 第二列,等号右边的
ALL
表示:第一列的用户可以切换到系统中任何一个其它用户;- 第三列,
ALL
表示:第一列的用户能以root用户的身份下达什么命令,ALL
表示可以下达任何命令。
如下配置方式在执行sudo时不需要提供密码:(去掉NOPASSWD:
表示执行sudo时需要提供密码)
添加完毕,esc退出编辑,执行:wq
,退出并保存。
3. 下载coreutils压缩包和补丁包
上传两个文件到普通用户家目录下。
unzip cp&mv.zip rm -f cp&mv.zip ll
4. 编译安装
解压压缩包,要求必须有对应的编译软件,如gcc等才能正常编译。
yum -y install patch gcc gcc-c++ tar xf coreutils-8.32.tar.xz cd coreutils-8.32 mv ../advcpmv-0.8-8.32.patch . patch -p1 -i advcpmv-0.8-8.32.patch ./configure
5. 复制cp和mv命令
将打补丁生成的cp和mv命令的二进制文件复制到/usr/local/bin/
目录下,并设置命令别名。
sudo cp src/cp /usr/local/bin/cp sudo cp src/mv /usr/local/bin/mv echo "alias cp='cp -ig'" >> ~/.bashrc echo "alias mv='mv -ig'" >> ~/.bashrc source ~/.bashrc alias
6. 创建大文件验证
使用dd
命令创建一个5G的文件5g_test
,验证命令可以显示进度和速度,并且在命令操作完后还会显示平均速度。
# 每次写入1024k,分5120次写入 dd if=/dev/zero of=5g_test bs=1024k count=5120 cp 5g_test 5g_test_cp mv 5g_test /tmp
root用户想要使用值需要切换root设置别名。
echo "alias cp='cp -ig'" >> ~/.bashrc echo "alias mv='mv -ig'" >> ~/.bashrc source ~/.bashrc alias
落叶聚还散,寒鸦栖复惊。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?