1. 在文件系统之间复制目录
通过将find命令与cpio命令结合使用,将目录树从文件系统filesystem1复制到filesystem2。
# cd filesystem1
# find . -depth -print | cpio -pdm filesystem2
. 从当前工作目录开始。
-depth 向下派生目录分层结构并从下到上列显文件名。
-print 列显文件名。
-p 创建文件列表。
-d 根据需要创建目录。
-m 在目录中设置正确的修改时间。
示例 :
cd /data1
find . -depth -print | cpio -pdm /data2
19013 blocks
cd /data2
ls
2. 将文件复制到磁带或打包成CPIO文件
$ ls | cpio -oc > /dev/rmt/n
ls 为 cpio 命令提供文件名列表。
cpio -oc 指定 cpio 命令应该在复制出模式 (-o) 下操作,并以 ASCII 字符格式(-c) 写入头信息。这些选项确保可移植到其他供应商的系统。
> /dev/rmt/n 指定输出文件。会将目录中的所有文件复制到指定磁带机中的磁带,同时会覆写该磁带中的任何现有文件。屏幕将显示复制的总块数。
列出磁带中的文件。
$ cpio -civt < /dev/rmt/n
-c 指定 cpio 命令应以 ASCII 字符格式读取文件。
-i 指定 cpio 命令应在复制入模式下操作,即使该命令仅列出了此时的文件。
-v 显示与 ls -l 命令的输出格式类似的输出。
-t 列出指定磁带机中的磁带上的文件目录。
< /dev/rmt/n 指定现有 cpio 归档文件的输入文件。
3. 从磁带或cpio文件中提取所有文件
$ cpio -icvd < /dev/rmt/n
-i 从标准输入中提取文件。
-c 指定 cpio 命令应以 ASCII 字符格式读取文件。
-v 在以与 ls 命令输出类似的格式恢复文件时,显示这些文件。
-d 根据需要创建目录。
< /dev/rmt/n 指定输出文件。
来源:《系统管理指南:设备和文件系统》