web-dev-qa-db-ja.com

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

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

gzip myetc.gz /etc

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

11
Elisia Light

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

これらのソリューションはどちらも愚かであり、使用すべきではありません。組み込みの圧縮オプションでtarを使用し、すべてを1つのコマンドで実行する必要があります。

6
SPRBRN

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

tar cvf myetc.tar /etc

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

tar cvzf myetc.tar.gz /etc
13
dr_

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

元のディレクトリをそのままにしたい場合は、最初にディレクトリを別の名前にコピーする必要があります。

#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 utilがあります。 https://askubuntu.com/questions/626634/converting-a-file-to-directory