ファイルにコマンドを実行するときにフルネームを入力せずにファイルを参照する方法はありますか? [コピー]

ファイルにコマンドを実行するときにフルネームを入力せずにファイルを参照する方法はありますか? [コピー]

たとえば、

tar xvf test.tar.gz ;  rm test.tar.gz

2回目の実行でファイル名を参照するより高速な方法はありますか?

私は次のようなことを考えていました(間違っています)。

tar xvf test.tar.gz ; rm $1

可能ですか?

私はワイルドカードを完全に理解しています。

ベストアンサー1

まず、ファイル名を変数に割り当てることができます。

f=test.tar.gz; tar xvf "$f"; rm "$f"

または使用$_特殊パラメータ、これには前のコマンドの最後の単語が含まれており、通常(もちろん常にそうではない)使用していたファイル名です。

tar xvf test.tar.gz; rm "$_"

ファイル名が常にコマンドの最後の引数である限り(たとえば、echo foo; echo $_; echo $_print three times foo)、複数のコマンドでも機能します。

ところで、セミコロンの代わりに演算子を使用してtar ... && rm ...使用することを検討できます。&&これにより、rm最初のコマンドが失敗した場合は実行されません。

おすすめ記事