Command line 如何在命令行中提取多个.gz日志文件

Command line 如何在命令行中提取多个.gz日志文件,command-line,compression,Command Line,Compression,我有很多年的日志文件,都在.gz文件中。是否有一个命令可以用来将这些文件一次提取到它们当前的目录中?我尝试解压*.gz,但没有成功。还有其他建议吗?shell sciprt #!/bin/ksh TEMPFILE=tempksh_$$.tmp #create a file name > $TEMPFILE

我有很多年的日志文件,都在.gz文件中。是否有一个命令可以用来将这些文件一次提取到它们当前的目录中?我尝试解压*.gz,但没有成功。还有其他建议吗?

shell sciprt

#!/bin/ksh

TEMPFILE=tempksh_$$.tmp                                          #create a file name
> $TEMPFILE                                                      #create a file w/ name

ls -l | grep '.*\.gz$' \                                         #make dynamic shell script
      | awk '{printf "unzip %s;\n", $9;}' \                      #with unzip cmd for each item
      >>  $TEMPFILE                                              #and write to TEMPFILE


chmod 755 $TEMPFILE                                              #give run permissions
./$TEMPFILE                                                      #and run it
rm -f $TEMPFILE                                                  #clean up
未经测试,但我想你明白了

事实上,有点麻烦,变得简单多了

 set -A ARR *.gz;
 for i in ${characters[@]}; do `unzip $i`; done;
 unset ARR;

请编辑您的问题,以包含确切的错误消息或其他“但不起作用”的确切证据。在许多/大多数Linux上,您需要使用
gunzip
,而不是
unzip
gunzip*.gz
应该可以工作。祝你好运。谢谢。但这太让我费解了,我实际上找到了另一种方法。有一个gunzip命令,似乎已经奏效了。我刚做了:gunzip*\.gz好的,一切都好。但是不要让脚本吓到你。。。如果你要做大量的cli工作,学习它会让你的体验更好。