コマンド「gzip」でアーカイブを作成する

コマンド「gzip」でアーカイブを作成する

gzipコマンド(tarではなく必須)でアーカイブを作成する必要があり、アーカイブには別のディレクトリ(たとえば/etc)のファイルが含まれている必要があります。コマンドを使用しようとしました。

gzip myetc.gz /etc

しかし、それはうまくいきませんでした。

答え1

gzipはディレクトリではなくファイルで動作します。したがって、ディレクトリのアーカイブを作成するには、次を使用する必要がありますtar(複数のファイルから 1 つの tarball を作成します)。

tar cvf myetc.tar /etc

または、gzip 圧縮されたアーカイブの場合:

tar cvzf myetc.tar.gz /etc

答え2

Gzip は、単一のファイル、またはストリーム (gzip にパイプされたデータ) でのみ機能します。したがって、まず tar のように 1 つのファイルを生成し、それを gzip で圧縮する必要があります。もう 1 つのオプションは、すべての個別のファイルを gzip で圧縮し、それを 1 つのファイルに tar で圧縮することです。

これらの解決策はどちらも愚かなので、使用しないでください。組み込みの圧縮オプションを備えた tar を使用して、すべてを 1 つのコマンドで実行する必要があります。

答え3

本当に tar が利用できない場合は、(-r - 再帰的) オプションを使用して gzip でディレクトリのバックアップを作成できますが、期待どおりの結果にならない可能性があります...

元のディレクトリを変更できないようにしたい場合は、まずディレクトリを別の名前でコピーする必要があります。

#cp -a directory my_gzip_alone_backup

次に、ディレクトリ上のすべてのファイルを再帰的に圧縮します (-r)。

#gzip -r my_gzip_alone_backup

では、my-gzip-alone-backup の内部を見てみましょう。期待どおりに myfile.gz という単一のファイルがあるわけではなく、再帰的に gzip されたファイルが多数あります。ただし、シンボリックリンクがあるため、etc でこれを行うのは適切ではありません...

ディレクトリを解凍するには、gunzip を使用して同じロジックを適用できます。

別の方法としては、tar がなくても、この投稿で示されているように、dd ユーティリティがあれば、ディレクトリを単一のファイルに変換することです。https://askubuntu.com/questions/626634/ファイルをディレクトリに変換する

関連情報