ablog

不器用で落着きのない技術者のメモ

tar の解凍結果を -O オプションで標準出力する

tar で解凍するときに標準出力したい場合は -O オプションをつければよい。

書式

  • 全て解凍して標準出力
tar xfvz sqlcl.tar.gz -O
  • 特定のファイルのみ解凍して標準出力
tar xfvz sqlcl.tar.gz -O sqlcl/bin/sql

実行例

$ tar cfz sqlcl.tar.gz sqlcl
$ tar tfz sqlcl.tar.gz sqlcl
sqlcl/
sqlcl/lib/
sqlcl/lib/jline-2.12.1.jar
sqlcl/lib/oracle.sqldeveloper.sqlcl.jar
sqlcl/lib/ojdbc6.jar
sqlcl/lib/jsch.jar
sqlcl/lib/SQLinForm.jar
sqlcl/lib/xmlparserv2.jar
sqlcl/lib/orai18n-mapping.jar
sqlcl/lib/xdb6.jar
sqlcl/lib/orai18n-utility.jar
sqlcl/lib/oracle.dbtools-common.jar
sqlcl/lib/orai18n.jar
sqlcl/bin/
sqlcl/bin/sql
sqlcl/bin/sql.exe
sqlcl/bin/sql.bat
$ tar xfvz sqlcl.tar.gz -O sqlcl/bin/sql|head
sqlcl/bin/sql
#!/bin/bash
########################################################################
#  (@)sql.sh
#
#  Copyright 2014 by Oracle Corporation,
#  500 Oracle Parkway, Redwood Shores, California, 94065, U.S.A.
#  All rights reserved.
#
#  This software is the confidential and proprietary information
#  of Oracle Corporation.

参考

tar -O -xzvf bar.tar.gz | grep 'foo'

gzipと違い-Oオプションが--stdoutで、解凍結果を標準出力にだします

gzやtar.gzに固められたログをgrepする - kanonjiの日記
NAME         top

       tar - an archiving utility
SYNOPSIS         top

   Traditional usage
       tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]

   UNIX-style usage
       tar -A [OPTIONS] ARCHIVE ARCHIVE

       tar -c [-f ARCHIVE] [OPTIONS] [FILE...]

       tar -d [-f ARCHIVE] [OPTIONS] [FILE...]

       tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]

       tar -r [-f ARCHIVE] [OPTIONS] [FILE...]

       tar -u [-f ARCHIVE] [OPTIONS] [FILE...]

       tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]

   GNU-style usage
       tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVE

       tar --create [--file ARCHIVE] [OPTIONS] [FILE...]

       tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...]

       tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...]

       tar --append [-f ARCHIVE] [OPTIONS] [FILE...]

       tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...]

       tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...]

       tar --update [--file ARCHIVE] [OPTIONS] [FILE...]

       tar --update [-f ARCHIVE] [OPTIONS] [FILE...]

       tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]