微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 这些命令(`tar`)实际上做了什么?有没有更好的办法?

我正在阅读一些有关创建发行版回购的文档.但是,我无法准确理解这些命令的执行情况:

# cd /mnt/
# ls
centos-1  centos-2  centos-3
# for i in 1 2 3 
> do
> cd /mnt/centos-$i
> tar cpf - . | ( cd /var/ftp/ks/centos/; tar xpf - )
> done

我的(显然是不正确的)破坏是:遍历每个安装的CD(/ mnt / centos-< index>)并创建保留权限的文件夹的tar.然后,再次将该tar文件解压缩到另一个文件夹,保留权限.

如果是这样的话,为什么会这样呢?真的没有更好的方法吗?或者也许我错过了整个想法.

解决方法:

为此过程推荐使用tar(或cpio)而不是cp的原因在于工具的运行方式.

cp依次对每个文件对象进行操作,从磁盘读取它,然后将其写入新位置.由于源和目标的位置可能不在磁盘上,因此这导致在位置之间进行大量搜索.

tar和cpio尽可能一次读取,然后将其写入存档.这意味着源文件一个一个地读取,并且目标文件一个一个地写入(当然允许进程切换),从而导致搜索更少,因此花费的时间更少.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐