min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash mvで「無効なオプション」が出た場合の対処(ファイル名に半角ハイフンが入ったファイルをmvする)

mvコマンドを使った時に「無効なオプション」とエラーがでることがある。

f:id:min117:20180512120152p:plain

<原因>

 移動しようとしているファイル名にハイフンが入ってしまっているから

<解消法>

 ファイル名のハイフンオプションと指定として読み込まないために、mvの直後に二つのハイフン(--)をつける

d.hatena.ne.jp

 

 

 

やってみる。

① ファイル名がハイフンで始まるファイルを検索。

$ for i in `ls | egrep '^-' | head -n 10`; do echo "$i"; done

f:id:min117:20180512115330p:plain

② 検索されたファイルの半角ハイフンを半角アンダーバーにする

 → mv でリネームしようとするがファイル名に含まれるハイフンオプションと認識してしまい失敗する

$ for i in `ls | egrep '^-' | head -n 10`; do echo "$i"; mv "$i" `echo "$i" | sed -e s/"-"/"_"/g`; done

f:id:min117:20180512115325p:plain

③ 検索されたファイルの半角ハイフンを半角アンダーバーにする

 → mv での直後にハイフンを2つ付けたので以降のハイフンがオプションとして見られなくなる

 → リネームが成功する

f:id:min117:20180512115321p:plain

TOPIC: How to use "mv" command for hyphenated string