web-dev-qa-db-ja.com

ディレクトリとサブディレクトリに複数のgzipファイルを抽出するにはどうすればよいですか?

gzipgunzipの両方のコマンドを試しましたが、どちらかを取得します

gunzip *.gz 
gzip: invalid option -- 'Y' 

gunzip -S-1800-01-01-000000-g01.h5.gz  
gzip: compressed data not read
 from a terminal. Use -f to force decompression. For help, type: gzip -h

-fオプションを試すと、1つのファイルで作業するのに非常に長い時間がかかり、コマンドが正常に実行されません。何か不足していますか?

9
Herman Toothrot

以下のコマンドを使用できます。

.gzファイルがあるディレクトリに移動して、コマンドを実行します。

for f in *.gz ; do gunzip -c "$f" > /home/$USER/"${f%.*}" ; done

すべてのファイルを元の名前で抽出し、現在のユーザーのホームディレクトリ(/home/username)に保存します。他の場所に変更できます。

編集:

gunzip *.gz

このコマンドも機能します。ただし、デフォルトでは、元のファイルを置き換えます。

12
pl_rock

オプション#1:単一引用符を使用して複数のファイルを解凍します(ショートバージョン)

gunzip '*.gz'

*.gz Wordは2つの一重引用符の間に挿入されるため、シェルはそれをワイルドカード文字として認識しません。

オプション#2:Shell for loopを使用して複数のファイルを解凍します(長いバージョン)

for g in *.gz; do gunzip $g; done

ソース

編集:

私はちょうど試しました:

gunzip -dk *.gz

そしてそれは働いた。

-dで解凍し、kで元のファイルを保持します。

3
Bilal

Linuxユーザー:

現在のディレクトリとそのサブディレクトリにある最小量の.gzファイルを抽出するには、次のコマンドを使用します

gunzip *.gz

現在のディレクトリとそのサブディレクトリにある任意の数の.gzファイルを抽出するには、次のコマンドを使用します

Sudo find . -name "*.gz" | xargs gunzip
0
kmsvignesh