複数のファイルを特定のフォルダに一度に圧縮するには?

複数のファイルを特定のフォルダに一度に圧縮するには?

/mydata複数のファイルを含むgzフォルダがあります。

元のzipを維持しながら、他のフォルダにすべて解凍したいと思います。/myoutput

どうすればいいですか?解凍プロセスも追跡できますか?

ありがとうございます!

ベストアンサー1

gzipbasenameおよびループを使用してください。

for pathname in /mydata/*.gz; do
    gzip -dc "$pathname" >"/myoutput/$( basename "$pathname" .gz )"
done

これは、一致するすべてのパス名に対して繰り返され、各名前についてファイル()の圧縮を標準出力()に解く/mydata/*.gzために使用されます。gzip出力はにリダイレクトされます。ファイル名は元のファイルと同じですが、ファイル名のサフィックスはありません(パス名からビットを削除し、最初の文字列を削除するため)。-d-c/myoutput.gzbasename/mydata/

ループ内のコマンドは、次のように書くこともできます。

gzip -d -o "/myoutput/$( basename "$pathname" .gz )" "$pathname"

これにより、gzipリダイレクトを介さずに出力ファイルを直接書き込むことができます。

これは以下のファイルを/mydata読むことができます/myoutput

おすすめ記事