Linux 将文件合并为一个文件

Linux 将文件合并为一个文件,linux,unix,gzip,solaris,sunos,Linux,Unix,Gzip,Solaris,Sunos,目前我在这个目录中- /data/real/test 当我在命令提示下执行ls-lt时。我觉得下面有些东西- REALTIME_235000.dat.gz REALTIME_234800.dat.gz REALTIME_234600.dat.gz REALTIME_234400.dat.gz REALTIME_234200.dat.gz 如何在Unix中将上述五个dat.gz文件合并为一个dat.gz文件,而不丢失任何数据。我是Unix新手,对此我不确定。有人能帮我吗 更新:- 我不确定哪种

目前我在这个目录中-

/data/real/test
当我在命令提示下执行
ls-lt
时。我觉得下面有些东西-

REALTIME_235000.dat.gz
REALTIME_234800.dat.gz
REALTIME_234600.dat.gz
REALTIME_234400.dat.gz
REALTIME_234200.dat.gz
如何在Unix中将上述五个
dat.gz文件
合并为一个
dat.gz文件
,而不丢失任何数据。我是Unix新手,对此我不确定。有人能帮我吗

更新:-

我不确定哪种方法是最好的,我是否应该解压五个文件中的每一个,然后合并成一个?或
将所有这些
5个dat.gz
组合成一个
dat.gz

如果可以按随机顺序连接文件内容,则以下命令将执行此操作:

zcat REALTIME*.dat.gz | gzip > out.dat.gz
更新

这将解决订单问题:

zcat $(ls -t REALTIME*.dat.gz) | gzip > out.dat.gz

当你将结果压缩时,你希望发生什么?如果希望这五个文件重新出现,则需要使用gzip(.gz)格式以外的其他格式。您需要使用tar(.tar.gz)或zip(.zip)

如果您希望gunzip的结果是原始文件的gunzip的串联,那么您可以简单地将文件cat(而不是zcat或gzcat)放在一起。gunzip然后将它们解压缩为单个文件

cat [files in whatever order you like] > combined.gz
然后:

将生成一个输出,该输出是原始文件的gunzip的串联


建议将它们全部解压缩,然后将它们作为一个流重新压缩,这是完全没有必要的。

zcat*.gz | gzip>out.dat.gz
我尝试过这样做。我得到了这个错误
REALTIME\u EXPORT\u v1x0\u 20120801\u 9\u T\u 234000\u 234200.dat.gz.Z:五个文件都没有这样的文件或目录。为什么会这样?@Nevzz03我无法重现这个问题。我在linux上使用bash和相同的文件名。@Nevzz03您在Solaris上而不是linux上吗?如果是这样,请改用
gzcat*.gz | gzip>out.dat.gz
。Solaris上的
zcat
实用程序使用不同的压缩套件(
compress
decompress
),该套件使用
.Z
作为后缀,而不是
.gz
。在其他非Linux Unixen(AIX等)上也可能出现这种情况……如果您看到我上面的评论,那么在文件名后面会附加额外的
Z
dat.gz.Z
为什么会这样?请参阅马克·阿德勒的答案~更快1000倍,更准确。
gunzip combined.gz