要将一个目录中的内容复制到一个已有的目录中,可以选择源目录中的文件,如清单 3 所示。
清单 3. 将一个目录中的内容复制到一个已有的目录中
$ cp -r /home/mc/* /export/home/mc
cp 工具有一个非常有用的选项,-p 命令行选项,它还可以确保维持每个文件的权限和所有权。
使用 tar
tar 命令最初用来将文件归档到磁带(确切地说,是磁带驱动器)。例如,您可以使用清单 4 中的命令,将当前目录中的文件复制到磁带上。
清单 4. 使用 tar 将当前目录中的文件复制到磁带
$ tar cf /dev/rmt0 .
可以对清单 4 进行如下分析:
然而,除了可以将文件和目录结构复制到磁带,您还可以使用 tar 将它们复制到一个文件。更有用的是,您可以将文件复制到标准输出,然后可以使用管道从标准输入中提取这些文件,并将它们从一个地方复制到另一个地方。通常在系统中复制和重新创建非标准的文件类型时,tar 命令更加可靠,因为 cp 命令不支持 -R 命令行选项。
例如,清单 5 显示了如何将文件从当前目录复制到一个已有的目录。
清单 5. 将文件从当前目录复制到一个已有的目录
$ tar cf - . | (cd DIR; tar xf - )
可以对清单 5 进行如下分析:
如果您显式地指定了路径,那么 tar 命令可以保持存档中所包含的文件的完整路径。清单 6 使用显式的路径将文件复制到存档中,这意味着,不能将这些文件提取到其他的地方,只能返回到它们的初始位置。
标签: