ディレクトリ内のすべての.gzファイルをgunzipします


24

たくさんの.txt.gzファイルがあるディレクトリがあります(名前が特定のパターンに従っていない場合)。

gunzip彼らへの最も簡単な方法は何ですか?私は彼らがから行くように、元の名前を保持したいwhatevz.txt.gzwhatevz.txt

回答:


42

これはどうですか?

$ gunzip *.txt.gz

gunzip.gz接尾辞なしで圧縮されたファイルを作成し、デフォルトで元のファイルを削除します(詳細については以下を参照)。*.txt.gzシェルによって一致するすべてのファイルに展開されます。

この最後のビットが非常に長いファイルのリストに展開されると、問題が生じる可能性があります。その場合は、とを使用find-execてみてください。


manページからgzip(1)

gunzip takes a list of files on its command line and  replaces  each  file
whose  name  ends  with  .gz, -gz, .z, -z, or _z (ignoring case) and which
begins with the correct magic number with an uncompressed file without the
original  extension.

「元の名前」に関する注意

gzipは、圧縮時に使用されるファイル名を保存および復元できます。圧縮ファイルの名前を変更しても、元の名前に再び復元されることを知って驚かされることがあります。

gzipマンページから:

デフォルトでは、gzipは元のファイル名とタイムスタンプを圧縮ファイルに保持します。これらは、-Nオプションでファイルを解凍するときに使用されます。これは、圧縮ファイル名が切り捨てられた場合、またはファイル転送後にタイムスタンプが保持されなかった場合に役立ちます。

また、メタデータに保存されているこれらのファイル名は次の方法でも表示できますfile

$ echo "foo" > myfile_orig
$ gzip myfile_orig 
$ mv myfile_orig.gz myfile_new.gz 
$ file myfile_new.gz 
myfile_new.gz: gzip compressed data, was "myfile_orig", last modified: Mon Aug  5 08:46:39 2019, from Unix
$ gunzip myfile_new.gz        # gunzip without -N
$ ls myfile_*
myfile_new

$ rm myfile_*
$ echo "foo" > myfile_orig
$ gzip myfile_orig
$ mv myfile_orig.gz myfile_new.gz 
# gunzip with -N
$ gunzip -N myfile_new.gz     # gunzip with -N
$ ls myfile_*
myfile_orig

0

.gzファイルを保持する場合は、次を使用できます。 $ gunzip -c inputfile.gz >outputfile


0

このコマンドを使用して、現在のディレクトリ内のすべてのファイルをgunzip(gzファイルを解凍)し、元のファイルを保持します。

gunzip -k *.gz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.