"rename * *.log *"コマンドの機能は何ですか?

"rename * *.log *"コマンドの機能は何ですか?

私はRed Hat 7.3を使用しています。

入力したら、すべてのファイル名からそれらを削除したいとrename * *.log *思います。log

私にとっては、このようなことは起こりませんでした。簡単に言えば、ファイルが消えているようです。

答え1

renameシステムにどのプログラムがあるかによって異なります(RHELプログラムは覚えていません)。の場合ユーティリティLinuxの名前変更、最初のファイルの名前を2番目のファイルに変更できます。ここに問題があります。 (明確にするために、ここではその内容を使用しますrename.ul。)

3つのファイルに対してコマンドを発行すると、a.logシェルはglobを展開し、最終コマンドの実行は次のようになります。b.logc.logrename.ul * *.log *

rename.ul a.log b.log c.log a.log b.log c.log a.log b.log c.log

rename最初の2つをパターンと置換にインポートし、残りのパラメータとして名前が付けられたファイルに適用します。したがって、基本的にコマンドはa.logすべてb.logc.log a.log b.log c.log a.log b.log c.loga.logb.logNext a.logリスト。

あなたならどうですかrenameパールの名前を変更するprename)代わりに、最初のファイル名が有効なPerlコマンドではない可能性があるため、エラーが発生し、何も起こらない可能性があります。prenameファイルはデフォルトで上書きされません。


util-linuxで名前を変更し、.log使用可能なファイル名から削除します。

$ rename.ul .log "" *.log

これにより、名前の真ん中にある一致も変更されv.loggerますvger

Perlで名前を変更するには、コマンドは次のようになります。

$ prename 's/\.log$//' *.log

関連情報