以前のスタイル構文で(GNU)tarの引数の順序は何ですか?

以前のスタイル構文で(GNU)tarの引数の順序は何ですか?

シェルパイプラインでは、ディレクトリ内の選択されたファイルからtarアーカイブを作成し、stdinからファイルリストをインポートしてから、アーカイブをstdoutに書き込みます。私がtarこのように走るとき:

tar cCTf directory - -

すべてが大丈夫です。しかし、次のように実行しようとすると、次のようになります。

tar cTCf - directory -

tarファイルが見つからず、次のエラーメッセージが表示されます。

tar: The following options were used after any non-optional
arguments in archive create or update mode.  These options
are positional and affect only arguments that follow them.
Please, rearrange them properly.
tar: -C ‘directory' has no effect

2番目のコマンドにはどのような問題がありますか?

私はGNU tar 1.34を実行しています。

ベストアンサー1

このエラーは...

tar:アーカイブ生成モードまたは更新モードでは、オプションではなく引数の後に次のオプションを使用します。これらのオプションは場所によって異なり、その後のパラメータにのみ影響します。正しく並べ替えてください。

tar: -C "ディレクトリ"が無効です。

C...オプションが場所によって異なることを知らせます。表示されるオプションにのみ影響します。後ろにそれ。したがって、afterで書くと、cTCf実際には何もできません。 tar が読み取るファイル名の解釈方法には影響を与えず、それ以降は何も適用できません。-C-T-T

-Tコマンドラインに次のようないくつかのオプションがある可能性があることを考慮すると、理解しやすくなります。-C

tar cCTCTf /path/to/dir1 filelist1 /path/to/dir2 filelist2 -

-Cパラメータは次の-Tパラメータに影響します(以前のパラメータには影響しません)。

おすすめ記事