10

私はファイルを持っています、その内容は同じです。これはgzipに渡され、圧縮されたフォームのみが保存されます。zipを再度生成できるようにしたいのですが、コピーが異なる場合にのみ更新します。現状では、差分ツール(diff、xdelta、subversion)は、ファイルが変更されたものと見なします。

前提として、重要なデータベースのmysqldumpをSubversionリポジトリに保存しています。cronjobが定期的にdbをダンプし、gzipで圧縮し、ファイルをコミットすることが私の意図です。現在、ファイルがダンプされてからgzipで圧縮されるたびに、ファイルは異なると見なされます。15mごとにリビジョン番号を不必要に増やしたくない。

ファイルをプレーンテキストとしてダンプできることはわかっていますが、ファイルがかなり大きいので、あまり使用したくありません。

ダンプを生成するために現在使用しているコマンドは次のとおりです。

mysqldump $DB --skip-extended-insert | sed '$d' | gzip -n > $REPO/$DB.sql.gz

-nファイル名/タイムスタンプ情報を削除するようにgzipに指示します。はsed '$d'、mysqldumpがタイムスタンプを配置するファイルの最後の行を削除します。

この時点で、おそらくプレーンテキスト形式での保存に戻る予定ですが、どのような解決策があるのか​​興味がありました。

解決しました。ブライト氏は正しかったです。正しい引数が小文字の場合、誤って大文字のNを使用していました。

4

3 に答える 3

16

-Nは、ファイル名/タイムスタンプ情報を削除するようにgzipに指示します。

実際、それは正反対です。 -n元のファイル名とタイムスタンプを忘れるように指示するものです。

于 2009-03-20T18:38:08.527 に答える
3

gzipはファイルの元の日付とタイムスタンプを保持しているため、別のアーカイブが生成されると思います。

-N --name
          When  compressing,  always  save  the original file
          name and time stamp;  this  is  the  default.  When
          decompressing,  restore  the original file name and
          time stamp if present. This  option  is  useful  on
          systems  which  have a limit on file name length or
          when the time stamp has  been  lost  after  a  file
          transfer.
于 2009-03-20T18:38:31.147 に答える