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

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

.txt.gz名前が特定のパターンに従わないファイルが多いディレクトリがあります。

彼らにとって最も簡単な方法は何ですかgunzip?元の名前を保持して名前をwhatevz.txt.gz変更したいです。whatevz.txt

ベストアンサー1

これはどうですか?

$ gunzip *.txt.gz

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

この最後のエントリが非常に長いファイルのリストに展開されると、問題が発生する可能性があります。この場合は、findと を使って-exec操作を実行してみてください。


マニュアルページから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

おすすめ記事