背景
フォルダとそのファイルの両方を再帰的に圧縮しようとしています。頭の中でコマンドを試してみましたが、間違いなく間違っていました。
その結果、フォルダとすべてのサブフォルダとファイルはまだ存在しますが、各ファイルはgzipに圧縮されます。
例えば
#Folder - filename.php.gz - file2.txt.gz #Subfolder -filename.php.gz
など。
実際、どのコマンドがこの問題を引き起こしているのかわかりません。いくつか試してみましたが、ほとんどエラーが発生しました。しかし、明らかにそれらの1つは「動作」ですが、私が望む効果はありません。
私はこれが問題を引き起こすコマンドだと思います。gzip -r ocloud/ ocloud.zip
質問
この状況を元に戻すには、どのコマンドを使用する必要がありますか?つまり、すべてのフォルダとファイルをアーカイブして解凍しますか?
答え1
次のオプションが利用可能でなければなりません-d
。
gzip -r -d ocloud/ ocloud.zip.gz
答え2
Antronは最良の解決策を提供しますgzip -r -d ocloud/ ocloud.zip.gz
が、他のオプションも良いので、ディレクトリがすべてのgzip -d $(find directory)
gzip圧縮ファイルを含むディレクトリである場合でも、これを行うことができます。明確にするために、find
指定されたディレクトリ内のすべてのファイルを繰り返し一覧表示します。を使用すると$(someCommand)
実行されsomeCommand
、出力が置き換えられます$(someCommand)
。だから実際にはそうしますgzip -d file1 subdirectory/file2 subdirectory/subsubdirectory/file3
。
また、gzipを使用してディレクトリを圧縮する正しい方法は、まずディレクトリを非圧縮tarballに変換してから圧縮tar -cvf tarball.tar directory
tarballを使用することですgzip tarball.tar
。解凍するときはgzip -d tarball.tar.gz
その時のように逆さまに繰り返すこともできtar -xvf tarball.tar
、 tar を使ってやっても構いませんtar -xvf tarball.tar.gz
。