tarのデフォルト動作を設定するには?

tarのデフォルト動作を設定するには?

-cvzpfを除いて、tarで他のオプションを使用する必要はありませんでした。これをデフォルトの動作に設定する方法はありますか?

しばしば話すことができないことを知っていますが、なぜ誰かがプログラムを別の方法ではなく1つの方法で書いていますが、tarが他のほとんどのコマンドラインユーティリティと同じ操作を実行しない理由を理解できませんでした。つまり:

command -options /source/path /target/path

代わりになぜ:

command -options /target/path /source/path

答え1

-cvzpf は、少なくとも次の理由でデフォルトの動作ではありません。

  1. -c は、ユーザーが少なくとも同じようにアーカイブの内容を抽出または表示したいアーカイブの生成を指定します。
  2. -vは詳細なタスクを指定しますが、一部の人はすべてを見たくありません。
  3. -p これは何の関係もありません作るファイル。
  4. -fユーザーが出力をファイル(または既存のUnicesのデフォルトのテープ装置)の代わりに別の装置/プログラムにパイプしたい場合。

あなたが提案したものではないのは、テープドライブの使用とオリジナルの作成者のエンコーディングに関して処理する必要がある歴史的な理由です。

デフォルトの動作に設定するとエイリアスを作成できますが、ファイルを抽出するには別のエイリアスが必要です。

GNU実装のデフォルトオプションを変更するもう1つの方法は、環境変数をtar設定することです。TAR_OPTIONS-fをオプションの1つとして指定しようとすると気にしません。

export TAR_OPTIONS=-tvzp

オプションを設定できますが、競合するオプションをtarに渡すとエラーが発生します。たとえば、TAR_OPTIONSを上記のように設定してアーカイブを抽出しようとすると、次のエラーが発生します。

tar: You may not specify more than one `-Acdtrux' or `--test-label' option
Try `tar --help' or `tar --usage' for more information.

答え2

の2つの質問に対する答えはわかりませんが、tarコマンドラインツールのデフォルトの動作を設定する方法をお知らせできます。

使用aliasコマンドを使用すると、シェルのすべての単語を文字列に置き換えることができます。エイリアスの正確な使用は、使用するシェルによって異なります。次の例はbashシェルで実行されます。

alias tar='tar -cvzpf'

これは、tarという単語を「tar -cvzpf」に置き換えます。 Bashがこれを「記憶」するには、bashシェルの起動時に実行されるスクリプトにエイリアスコマンドを配置する必要があります.bashrc.aliasそこからスクリプト.bashrc.)

csh/tcshシェルでは、一重引用符の代わりに=二重引用符を省略して使用できます。"使用しているシェルを見つけるには、と入力しますecho $SHELL

関連情報