Centos Linux快速复制文件并查看进度的方法(保留文件原始时间戳等属性)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

用cp命令保证快速复制screen保证不丢失你对cp命令执行情况的掌控。

需要用到screen软件包防止复制过程中终端被关闭。

centos linux直到7默认都没有screen需要安装一下

普通账户

sudo yum -y install screen

root账户

yum -y install screen

安装好之后

screen -S copy

一个叫copy的屏幕然后输入命令

cp -frpv source destination

source源文件或者目录

destination目标路径

参数f强制复制p保留所有信息创建时间、修改时间、权限、所有者等r递归目录复制v显示详细信息复制完成的文件路径会打到屏幕上这个参数能让你在拷贝上百G的大文件

回车后按Ctrl+A然后按D终端会显示[detached from 41800.copy]表明窗口已经在后台执行了。然后你可以再弄一个

screen -S progress

以方便在两个窗口之间切换。

然后执行

du -sh destination

destination表示目标文件夹你看这个大小对比你原来要复制的文件夹的大小你就知道进度了。

如果需要回到复制界面同样Ctrl+A然后按D然后screen -r copy就回到原来的窗口了。

如果像知道有多少窗口screen -ls可以查看。

41800.copy      (Detached)

当然你也可以单独用一个新的终端窗口来看目标文件夹现在有多大了

du -sh destination
#会显示
6.1G    test/
#而且只会显示根目录的总大小

表示41800.copy正在后台运行41800表示进程号由系统分配copy是你刚给复制窗口起的名字如果彻底复制完了这个窗口不会自动关掉你需要

kill -9 41800

然后可能会提示你

you die...

再执行

screen -ls

能看到

41800.copy      (Dead ???)

执行

screen -wipe

看到

There is a screen on:
        41800.copy      (Removed)
1 socket wiped out.
No Sockets found in /var/run/screen/S-yourlogonusername.

表示结束的进程就清理掉了。

总结如果只是本地拷贝文件没有很高级的备份需求又很在意进度又是本地复制不建议用rsync和scpscp速度比rsync可能会快一点但都没有直接cp效率高且复制速度快。如果确实需要知道当前进度和总进度就用du -sh来看目标文件夹大小对比你原来文件夹的大小你总应该会心里有数的。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linuxcentos

“Centos Linux快速复制文件并查看进度的方法(保留文件原始时间戳等属性)” 的相关文章