
次のファイルの名前を変更する際に問題が発生しました
-data-02-03-04.dat
問題はダッシュで始まるファイル名から発生していると思います。名前を変更しようとすると、次のエラーが発生します。
rename -data-02-03-04.dat data020304.dat
Unknown option: data-02-03-04.dat
Usage:
rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ]
[ -e|-E perlexpr]*|perlexpr [ files ]
答え1
問題は実際にはダッシュで始まるファイル名から発生しており、これはrename
引数ではなくコマンドのオプションとして扱われます。この問題を回避するには、ファイルのパスを調べるだけです。
mv ./-data-02-03-04.dat data020304.dat
mv
1 つのファイルに対してより便利なコマンドを使用しました。rename
コマンドは主にバッチ名前変更に使用され、perl
正規表現が必要です。
指摘したようにここ--
この問題に対処する別の方法は、コマンド オプションの終了を示す二重ダッシュを追加することです。
mv -- -data-02-03-04.dat data020304.dat
答え2
rename
思った通りには動作しません。
次のいずれかを実行できます。
mv ./-data-02-03-04.dat data020304.dat
mv -- -data-02-03-04.dat data020304.dat
本当に rename を使用したい場合は、正しい構文は次のようになります。
rename 's/-//g' ./-data-02-03-04.dat
rename 's/-//g' -- -data-02-03-04.dat