-2

いくつかのサブディレクトリを含むディレクトリを作成しました。それらの素敵な小さなサブディレクトリにはいくつかのファイルがあります。

その堅牢なルート ディレクトリを .tgz ファイルにうまく圧縮したいと思います。

私が持っているコードはtar cvzf('/Users/me/Desktop/things.tgz', '/Users/me/Desktop/')

エラーundefined method ‘cvzf’ for main:Objectをグーグルで調べても何も得られませんでした

4

1 に答える 1

1

エラーは問題を正しく説明しています。2 つのファイル パスを引数として呼び出されるメソッドを呼び出していますがcvzf、Ruby にはそのようなメソッドはありません。(Rubyも何が何だかわからないtarが、たまたま他のエラーが先にキャッチされる)

Ruby スクリプト内からシェル コマンドを呼び出すだけの場合は、次のようにコマンドを逆引用符で囲みます。

`tar cvzf "/Users/me/Desktop/things.tgz" "/Users/me/Desktop"`

ただし、システムに tar プログラムがある場合にのみ機能します。それ以外の場合は、Rubyに tar 機能を追加するRuby gemをいくつかインストールしてみてください。

于 2012-05-14T22:26:49.953 に答える