谁能告诉我是否可以管道| 这无需在 A 和 B.tar.gz 之间的任何位置创建物理文件?
这就是我想要做的:
例如:
cp A B | tar cvf - B | gzip -9 B.tar.gz
Run Code Online (Sandbox Code Playgroud)
spe*_*akr 51
以下示例可用于避免创建中间文件:
tar 与 gzip:
tar cf - A | gzip -9 > B.tar.gz
没有 tar 的 gzip:
gzip -9c A > B.gz
没有 gzip 的 tar:
tar cf B.tar A
重命名(移动)A
到B
第一个对我来说没有意义。如果这是有意的,那么只需mv A B &&
在上述任一命令之前放置一个并A
与B
那里交换。
tar 和 gzip 示例:
mv A B && tar cf - B | gzip -9 > B.tar.gz
小智 9
这取决于你的tar版本
如果您有支持成员转换(--transform 或--xform)的版本,那么您可以简单地执行
tar -c --transform=s/A/B/ A | gzip -9 > B.tar.gz
Run Code Online (Sandbox Code Playgroud)
| 如果您的 tar 支持 -z 选项,则可以避免 gzip -9 >B.tar.gz
tar -zcvf B.tar.gz --transform=s/A/B/ A
Run Code Online (Sandbox Code Playgroud)
如果您的 tar 版本不支持 --transform 那么您必须先复制文件,例如
cp A B && tar -zcvf B.tar.gz B
Run Code Online (Sandbox Code Playgroud)
但是,如果您只压缩一个文件,为什么不一起跳过 tar 部分而直接执行
cat A | gzip -9 > B.gz
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
109285 次 |
最近记录: |