mvコマンドを使った時に「無効なオプション」とエラーがでることがある。
<原因>
移動しようとしているファイル名にハイフンが入ってしまっているから
<解消法>
ファイル名のハイフンをオプションと指定として読み込まないために、mvの直後に二つのハイフン(--)をつける。
やってみる。
① ファイル名がハイフンで始まるファイルを検索。
$ for i in `ls | egrep '^-' | head -n 10`; do echo "$i"; done
② 検索されたファイルの半角ハイフンを半角アンダーバーにする
→ mv でリネームしようとするがファイル名に含まれるハイフンをオプションと認識してしまい失敗する
$ for i in `ls | egrep '^-' | head -n 10`; do echo "$i"; mv "$i" `echo "$i" | sed -e s/"-"/"_"/g`; done
③ 検索されたファイルの半角ハイフンを半角アンダーバーにする
→ mv での直後にハイフンを2つ付けたので以降のハイフンがオプションとして見られなくなる
→ リネームが成功する
TOPIC: How to use "mv" command for hyphenated string