如何防止其删除文件?
如果不包括此功能,则
我正在使用Ubuntu 9.04
#1 楼
您正在寻找:gzcat x.txt.gz >x.txt
gzcat
命令等效于gunzip -c
,该命令仅将输出流写入stdout
。这将使压缩文件保持不变。因此,您也可以使用:gunzip -c x.txt.gz >x.txt
请注意,在某些系统上,gzcat也称为
zcat
,因此应这样运行:zcat x.txt.gz >x.txt
评论
感谢你的回答。在DOS中与pkunzip一起成长时,我发现它是如此奇怪,以至于没有保留文件的选项。尤其是像gzip这样的工具被广泛使用...简直太奇怪了。
–森
09-09-23 14:59
仅供参考,我实际上没有gzcat。我的本地系统或ssh都没有进入过的系统。所以,我必须使用gunzip -c
–森
09-09-23 16:15
它可能只是您系统上的zcat。
–user23307
2010-1-31 14:52
保留文件的其他选择确实不错。例如,b(un)zip2使用类似的语法,并允许简单地添加-k来保留原始文件。
– schnaader
2011年9月8日20:19
您还可以将行别名gzcat =“ gunzip -c”添加到.bashrc中
–詹姆斯·金斯伯里(James Kingsbery)
2012年3月30日在20:04
#2 楼
您可以使用gunzip的-c
选项将输出写入标准输出,然后将其通过管道传输到您选择的文件:gunzip -c compressed-file.gz > decompressed-file
手册上的更多详细信息。
评论
顺便说一句,请注意,上面提到的手册页列出了-k选项,这意味着保留输入文件。也许这适用于BSD版本,但不适用于我的,所以-c解决方案似乎是正确的。
–user49260
2010-09-13 22:01
#3 楼
一个更简单的解决方案是将gunzip用作这样的过滤器:gunzip < myfile.gz > myfile
评论
我认为这是最干净的方法,因为gunzip永远不知道它要获取的文件,它所看到的只是数据流,因此不可能更改原始文件。
–沃尔夫
16 Dec 9'在1:11
可能值得注意的是,您也可以通过管道传递输出,例如:gunzip
–提莫西·佐恩(Timothy Zorn)
20 Jun 7'23:10
#4 楼
如果它实际上是一个tar包(.tgz或.tar.gz扩展名),那么与其像到目前为止的所有答案一样重定向到文件,不如将其通过管道传输到tar,如下所示: >gunzip -c myfile.tar.gz | tar xvf -
,以便您获取实际内容。
评论
或只是做:tar xzvf myfile.tar.gz
–约翰·埃洛夫森(Joakim Elofsson)
09-09-23 17:39
是的,但前提是您具有GNU tar。例如,Solaris随附的一个不支持z选项。
– Alex
09年9月23日在20:01
@JoakimElofsson值得一枚奖牌!
–乔诺
20-10-10在16:17
#5 楼
gzip -dk myfile.gz
或
gunzip -k myfile.gz
评论:
-k --keep Keep (don't delete) input files during compression or decompression.
评论
您正在使用哪个版本的gunzip?来自GNU的gzip 1.5没有-k选项
– Rho Phi
20-2-3在12:01
gzip:无效选项-'k'
–普特尼克
20-2-6在9:44
@RhoPhi gzip和gunzip版本:1.10,我在Windows中使用git bash(MINGW64)
– Nabi K.A.Z.
20-2-10在10:18
@Putnik我使用1.10
– Nabi K.A.Z.
20-2-10在10:18
#6 楼
使用-c
选项将文件解压缩到标准输出。它不会触摸原始文件。gunzip -c myfile.gz > myfile
#7 楼
Gnu tar可以读取gzip文件:tar -zxsvf myfile.tar.gz
或tar -jxzvf myfile.tar.bz2
(用于压缩的tar文件)。
评论
使用以下命令:gunzip -k哪些gunzip具有-k选项?我没有人。
@ Znik,gzip / gunzip 1.6及更高版本具有-k选项。