linux拷盘进度命令 linux拷贝文件怎么看进度

linux中copy多个文件有方法显示进度条吗?拷贝多个文件或者文件夹下有多个文件的时候,可以使用rsync命令,可以显示拷贝进度,而且支持断点重传 。
rsync -av --progress /source/file /dest/dir
Linux查看拷贝一个文件用多少时间命令?如果是想知道需要大约多长时间才能复制过去的话 , 就用被粘贴存储器的平均写入速度÷文件大小(单位一样)就可以算出来大约时间了
如果你是想计时的话,在Manjaro Linux之类的系统终端上因为启用了zsh的powerlevel10k主题,所以自带一个命令执行时间计时器,会在执行结束后告诉你时间,或者可以使用time命令
如果是dd这个命令的话可以在后面多加一个status=progress参数来看到目前写入进度跟预计时间
Linux下拷贝大文件显示进度条可怕linux拷盘进度命令的不是时间久linux拷盘进度命令,可怕的是未知 。
在Linux下拷贝大文件要显示进度条linux拷盘进度命令,linux拷盘进度命令我百度了一下看到好多人的解决方法,要么是自己写一个程序 , 要么是使用scp或rsync这种软件来曲线救国 。最近发现了一个软件还是比较好解决这个问题的,就是ranger 。
ranger是一个命令行下的文件管理器,它就自带有进度条的功能 。
在命令行下输入ranger就可以打开ranger了,ranger的快捷键基本上就是vim风格 , 所以linux拷盘进度命令我们需要复制文件的话 , 需要将光标移动到需要复制的文件上,然后按yy,就复制好了,然后到目标文件夹 , 按pp,就已经开始复制了,在页面最下方可以看到一个进度条 。
linuxcp命令并显示拷贝时间在Linux系统里面用到 cp命令复制不能显示文件拷贝的进度linux拷盘进度命令,也不能计算还有多长时间文件可以 拷贝结束linux拷盘进度命令 , 现在写一个程序可以显示文件拷贝的进度 。
思路:当前目录下面有一个1G大小的bigfile文件
当我在命令行下面输入ls -lh bigfile,我会得到这个文件的详细信息,当然也可以看到文件的大小 。
ls -lh bigfile
-rw-rw-r-- 1 nii nii 1000M7月 13 19:41 bigfile
我们可以用popen函数,把执行之后的结果”-rw-rw-r– 1 nii nii 1000M 7月 13 19:41 bigfil”这串字符串接收下来,我们可以提取出来表示文件大小的那段字符串,比如这个我们可以提取”1000”在用atoi函数,把字符串转换为int型数值1000(不了解popen函数和atoi函数的请自行学习),就可以获得文件大小 。
例如我的文件名字叫mycp.c,我执行gcc -o mycp mycp.c生成一个mycp的可执行文件 。
接下来我在命令行上输入./mycp bigfile destbigfile把当前目录下面的bigfile文件拷贝为destbigfile,这时我产生一个子进程 , 子进程负责调用系统的cp命令拷贝,父进程每隔一秒钟,去获取destbigfile、bigfile 文件的大小,就可以知道拷贝的进度,当然也可以获得拷贝的时间,就可以计算出来离拷贝结束还有多长时间 。
下面是代码的实现:
#include
#include
#include
#include
#include
#include
#include
/** 得到文件的详细信息 */
int getFileMsg(char* pchCmd,char *pchMsg);
int main(int argc,char* argv[])
{
char szSrcFileMsg[150] = {0};
char szSrcFileSizeMsg[10] = {0};
intnSrcFileSize = 0;
char szSDestFileMsg[150] = {0};
char szDestFileSizeMsg[10] = {0};
intnDestFileSize = 0;
int pid = 0;
/** shell执行的命令 ,在创建文件的时候使用*/
char szExcueCommand[150] = {0};
float fRate = 0;
int nUsedTime = 0;
float nLastTime = 0;
/** 入参必须是三个 */
if (1 == argc)

推荐阅读