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

用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和scp,scp速度比rsync可能会快一点,但都没有直接cp效率高且复制速度快。如果确实需要知道当前进度和总进度,就用du -sh来看目标文件夹大小,对比你原来文件夹的大小,你总应该会心里有数的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS Linux 上访问 Windows 文件,可以通过 Samba 实现。Samba 是一个开源软件套件,它提供了一种在 Linux 和 Windows 之间共享文件和打印服务的方式。 以下是在 CentOS Linux 访问 Windows 文件的步骤: 1. 安装 Samba: 在 CentOS Linux 上安装 Samba,可以使用以下命令: ``` sudo yum install samba ``` 2. 配置 Samba: 在 CentOS Linux 上配置 Samba,可以编辑 Samba 的配置文件 `/etc/samba/smb.conf`。在配置文件中,需要添加一个 Samba 分享,以便 Linux 用户可以访问 Windows 文件。以下是一个示例配置: ``` [windows-share] comment = Windows Share path = /mnt/windows read only = no guest ok = yes ``` 在上面的示例中,`[windows-share]` 是 Samba 分享的名称,`/mnt/windows` 是 Windows 文件夹的路径。`read only = no` 表示允许写入访问,`guest ok = yes` 表示允许匿名访问。 3. 挂载 Windows 文件夹: 在 CentOS Linux 上挂载 Windows 文件夹,可以使用以下命令: ``` sudo mount -t cifs //windows-hostname/share-name /mnt/windows -o username=windows-username,password=windows-password ``` 在上面的命令中,`//windows-hostname/share-name` 是 Windows 主机名和共享名称,`/mnt/windows` 是 CentOS Linux 上的挂载点,`username=windows-username,password=windows-password` 是 Windows 用户名和密码。 4. 访问 Windows 文件夹: 在 CentOS Linux 上访问 Windows 文件夹,可以使用以下命令: ``` cd /mnt/windows ls ``` 在上面的命令中,`/mnt/windows` 是挂载的 Windows 文件夹路径,`ls` 是列出目录中的文件。 以上就是在 CentOS Linux 上访问 Windows 文件的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值