2.6.4 createの短い形式

前に述べたように、--create(-c)操作はtarの最も基本的な用途の1つで、何度も使うことになります。いずれは、オプションの省略形(短い形式)を使いたくなるでしょう。3つの形式について詳しくは、3つのオプション形式で説明しています。ここでは、前の例(--verbose(-v)付き)を短い形式で示します。

$ tar -cvf collection.tar blues folk jazz
blues
folk
jazz

このように、長い形式でも短い形式でも、システムの応答は同じです。

短い形式と長い形式の違いの1つは、オプションに続く引数の位置の規則が短い形式で特に厳密になるわけではないものの、短い形式のほうが混乱して間違えやすいという点です。たとえば、上の例を次のように入力したとします。

$ tar -cfv collection.tar blues folk jazz

この場合、tarは、blues、folk、jazzを含むvというアーカイブファイルを作ります。「v」が-fオプションに最も近い「ファイル名」であり、指定されたアーカイブファイル名として扱われるためです。tarは、collection.tarというファイルをvアーカイブに追加しようとします。collection.tarがまだ存在しなければ、tarはそのファイルが存在しないというエラーを報告します。collection.tarがすでに存在する場合(たとえば前に実行したコマンドで作成済みの場合)、tarはそのファイルをアーカイブに追加します。-vオプションは認識されなかったため、tarは「verbose」モードで動作せず、進捗を表示しません。

結果として、何が起きたのか分からなくなったり、ファイルを上書きしてしまったりする可能性があります。さらに説明するため、前に示した例を短い形式で書くとどうなるかを示します。

次の例は、

$ tar --create folk blues --file=collection.tar jazz

このままでも分かりにくいものですが、短い形式ではさらに分かりにくくなります。

$ tar -c folk blues -f collection.tar jazz

-fの直後に誤った文字列を置くことは簡単に起きますが、そのせいで大切なデータを失うおそれがあります。

そのため、特に短い形式を使う場合は、オプションの順序と、ファイル名・アーカイブ名の位置に十分注意することをお勧めします。オプション名が覚えやすい語で書かれていないと、どのオプションが何をするか、したがって各名前をどこに置くかを思い出しにくくなる場合があります。