热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

debian拷贝整个子目录的基本命令

来源: 作者: 时间:2007-11-29 Tag: 点击:

如果想重新整理文件组织结构,可使用下面的方法移动文件及文件链接:

     标准方法:
     # cp -a /source/directory /dest/directory # 要求 GNU cp
     # (cd /source/directory && tar cf - . ) | \
             (cd /dest/directory && tar xvfp - )
     如果包含硬链接,则需要更严谨的方法:
     # cd /path/to/old/directory
     # find . -depth -print0 | afio -p -xv -0a /mount/point/of/new/directory
     如果是远程操作:
     # (cd /source/directory && tar cf - . ) | \
             ssh user@host.dom (cd /dest/directory && tar xvfp - )
     如果没有链接文件:
     # scp -pr user1@host1.dom:/source/directory \
               user2@host2.dom:/dest/directory

其中,scp <==> rcpssh <==> rsh

下面的有关拷贝整个子目录的信息由 Manoj Srivastava srivasta@debian.org 发表于 debian-user@lists.debian.org。


8.3.2 cp

传统上,cp 并不能真正完成这个任务,因为它既没对符号链接进行区别对待,又不能保存硬链接。另一件需要注意的事就是稀疏文件(有洞的文件)。

GNU cp 克服了这缺陷,然而对于非 GNU 系统,cp 仍存在问题。而且使用 cp 无法生成小巧轻便的文档包。

     % cp -a . newdir

8.3.3 tar

Tar 克服了 cp 在处理符号链接时出现的问题,然而,cpio 可以处理特殊文件,传统的 tar 却不行。

对于某个有多重硬链接的文件,tar 的处理方法是只将其中一个链接拷贝到磁带上,所以日后你只能找回拷贝中所保留那个的链接所指的文件;cpio 会为每个链接做一个拷贝,日后你可以找回任意一个链接所指的文件。

在 Potato 和 Woody 中,操作 .bz2 文件的 tar 命令参数有所变化,所以请在脚本中使用 --bzip2 而不要简写为 -I(Potato)或 -j(Woody)。


8.3.4 pax

全新的,符合 POSIX(IEEE Std 1003.2-1992, pages 380–388 (section 4.48) and pages 936–940 (section E.4.48))标准的,众望所归的,轻便的文档包交互工具。pax可以读、写以及列出文档包的成员,并能拷贝文件目录层次。pax 的操作独立于特定的文档包格式,支持各种各样不同的文档包格式。

pax工具刚刚成形,还很新。

     # apt-get install pax
     $ pax -rw -p e . newdir
      or
     $ find . -depth  | pax -rw -p e  newdir

8.3.5 cpio

cpiocpiotar 文档包提取/放入文件。该文档包可以是硬盘上的另一个文件,也可以是磁带或管道。

     $ find . -depth -print0 | cpio --null --sparse -pvd new-dir

8.3.6 afio

afio 更善于处理 cpio 格式的文档包。通常它比 cpio 要快,且提供了更多磁带选项,并且能更友好的处理有讹误的输入数据。它支持交互式处理多卷文档包。用 afio 制作压缩文档包比压缩 tarcpio 文档包更安全。在备份处理脚本中 afio 是更佳的“文档处理引擎”。

     $ find . -depth -print0 | afio -px -0a new-dir

对所有的磁带备份我都使用 afio


最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册