./.bash_vars
./.bashrc
./xmlsimple.pl
./rest.xml
46 blocks
.
.bash_aliases
.bash_history
.bash_path
.bash_profile
.bash_vars
.bashrc
xmlsimple.pl
rest.xml
46 blocks
因为在这个命令的两个部分中都使用了详细模式 , 所以可以确认创建的和提取的存档的大小是否相同 。在本示例中 , 这两项操作都使用了 46 个块 。
请注意 , 如果目标中的文件具有相同的、或更新的修改时间 , 那么 cpio 不会覆盖这些文件 。
通过网络进行复制
在 Unix 中通过网络传输文件的常用方法是使用网络文件系统 (NFS) 装入远程目录 , 然后进行与本地目录之间的复制 。这是一种比较简单的解决方案 , 但对于各种各样的情况 , 它并不总是可行的或实用的 。
通过网络复制文件的最简单的方法之一是使用 tar 或 cpio 创建存档文件 , 然后可以通过网络传输这个存档文件 。这种方法具有一些优点 , 比如可以自由选择如何以及何时进行文件的复制 , 但它也有一些缺点 , 包括复制过程的复杂性 , 以及在源系统中创建存档和将该存档复制到目标系统时保存完整的重复文件的磁盘空间需求 。
正如您所看到的 , 创建存档非常简单:
清单 14. 创建一个存档
$ tar cf mydir.tar .
然后 , 您可以使用合适的方法对该文件进行复制 , 例如 , 使用 cp 和 NFS 复制该文件 , 或使用 FTP 或 SFTP 将该文件传输到远程系统 。
然而 , 使用存档文件的方法并不是一种特别高效的方法 。您可以通过压缩来提高其效率 。
使用压缩
如果您使用 cpio 或 tar 创建存档文件 , 并通过慢速的连接对文件进行复制(例如 WAN 或 Internet , 而不是 LAN 环境) , 那么可以在传输存档文件前对其进行压缩处理 , 这样会节省传输的时间 。可以根据您所需的压缩级别选择合适的压缩格式 。
使用存档的方法非常简单 。您可以选择在创建存档之后对其进行压缩 , 如清单 15 所示 。
清单 15. 在创建存档之后对其进行压缩
$ tar cf mydir.tar .
$ bzip2 mydir.tar
要完成这项操作 , 您还可以使用管道生成存档的压缩版本(请参见清单 16) 。
清单 16. 使用管道生成存档的压缩版本
$ tar cf - .| bzip2 >mydir.tar.bz2
清单 16 中方法的优点是 , 它可以使用各种版本的 tar、cpio 或任何其他的存档工具 。它还适用于各种不同的平台 , 而这些平台中的不同变种的 tar 可能并不一定支持联机压缩处理 。如果安装了 GNU 版本的 tar , 那么您可以使用带 z 命令行选项的 tar 命令 , 这样就可以使用 Gzip 进行压缩处理(请参见清单 17) 。
清单 17. 使用带 z 命令行选项的 tar
$ tar zcf mydir.tar.gz .
在系统之间进行目录复制的另一种方法是 , 使用清单 16 中所示的管道解决方案 , 但需要使用远程 Shell 工具作为目标 。
直接通过网络进行复制
将典型的 tar 或 cpio 命令的输出通过管道传递到远程 Shell 中 , 如远程 Shell (rsh) 或安全 Shell (ssh) , 您可以直接通过网络进行复制 。使用哪一种远程 Shell 技术 , 完全取决于您的环境中可以使用的 Shell 。前者 (rsh) 是一种标准的远程 Shell 系统 , 它提供了基本的身份验证安全性 , 但不提供加密功能 , 而后者 (ssh) 提供了基本的身份验证和数据加密功能 。
这两种方法使用了相同的基本命令行结构(请参见清单 18) 。
清单 18. 直接通过网络进行复制
$ tar cf - ./*|rsh remotehost tar xf - -C /remotedir
除了在远程系统中执行目标 tar 命令之外 , 这个命令类似于本地化的 tar 。因为在这两个命令之间使用了管道 , 所以系统能够正常工作 。
推荐阅读
- 全封闭地下室如何采光
- SCO UNIX基础讲座--第五讲:电子邮件
- 局中人里的沈放结局如何
- SCO UNIX基础讲座--第六讲:後援复制
- 在sco 5.0.5中定时运行程序
- 如何在SCO系统中配置modem
- SCO UNIX 5 的引导过程
- 如何用牙膏卸掉指甲胶
- UNIX系统下各文件的作用
- 被拆迁房屋的同住人如何认定