ファイル名の先頭にハイフンを付けてファイルの名前を変更しようとしています。
mv -example-file-name example-file-name
この:
mv '-example-file-name' example-file-name
結果:
mv: invalid option -- 'e'
ほとんどのGNU/Linuxコマンドは--
オプションは、オプションの終わりを示し、後続の-
接頭辞付きの単語はオプションとして扱われません。
mv -- -example-file-name example-file-name
小さなテスト
$ touch -- -example
$ ls -l -- *ample
-rw-r--r-- 1 rgb rgb 0 Nov 25 09:57 -example
$ mv -- -example example
$
RedGrittyBrickの答えはとても良いです。別のオプションは次のとおりです。
mv ./-example-file-name example-file-name
小さなテスト:
$ touch ./-example
$ ls -l ./*ample
-rw-r--r-- 1 me me 0 Nov 25 16:02 ./-example
$ mv ./-example example
$ ls -l ./*ample
-rw-r--r-- 1 me me 0 Nov 25 16:02 ./example
このトリックは私にとって絶望的な時に機能します。 YMMV
rename \- '' *
名前を変更するには、ハイフンをエスケープする必要があります。名前の変更が単一引用符を尊重しない、または何らかのオーバーライドを提供しないのはなぜ私を超えています。
これは、名前の変更を使用して先頭のハイフンを確実に処理する唯一の方法です。私はmvの使用に関する他の投稿に同意しますが、何らかの理由でmvを使用できない場合、これは機能します。