我在 tar 的 manual 中看到这样的示例
To move file hierarchies, invoke tar as
tar -cf - -C srcdir . | tar -xpf - -C destdir
or more traditionally
cd srcdir ; tar -cf - . | (cd destdir ; tar -xpf -)
这和cp -r
有什么区别?
1
AoEiuV020JP 2023-11-15 11:33:29 +08:00
速度没差的,纯 tar 也不包含压缩,
主要用途应该是保留各种权限、所有者、软链接、甚至是修改时间, 不确定,没这么用过, |
2
miaosl 2023-11-15 14:02:57 +08:00 2
但是对于一些琐碎的小文件来说,tar 打包之后传输还是快些的
然后就是 tar 可以把目录打包比如 tar -cf /root/test/* 解压缩出来的就是/root/test/*这样的一个目录 |
3
ysc3839 2023-11-15 19:14:40 +08:00 via Android
去看了下 coreutils 的代码,cp 是支持 fclonefileat 或 ioctl FICLONE 的,所以在特定文件系统下会更快。如果 tar 更快的话,个人猜测要不然是因为中间有管道作为缓冲,不过管道默认的缓冲区大小不算太大,可能提升不明显。要不然是因为 tar 没有 cp 那么多额外的检查。
|