Windows には、ファイル/フォルダー名に使用できない予約文字がいくつかあります:
◦次の予約文字:
◾<(より小さい)◾> (より大きい)
◾:(コロン)
◾” (二重引用符)
◾/ (スラッシュ)
◾\ (バックスラッシュ)
◾| (縦棒またはパイプ)
◾? (疑問符)
◾* (アスタリスク)
また、中かっこを使用しないことをお勧めします {}
次のコードの抜粋を使用して、ファイルでいっぱいのフォルダーを「クリーンアップ」し、主要なショーストッパーを取り除くことができます。この抜粋では、スペースや :などの特定の文字を _ に置き換え、他の文字を削除しています。また、結果として生じる「ダブル スペース」の __ を 1 つの _ に置き換えます
必要に応じて自由に拡張および適応してください。
ls を while read にパイプすると、mv に送信するときにすべてを適切にエスケープする必要がなくなります
### # Fix badly names files # Windows doesn't really like "::" in filenames, we'll also get rid of other problematic characters. ### ls | while read -r FILE ; do mv -u "${FILE}" $(echo "${FILE}" | tr ' ' '_' | tr -d '[{}(),\!]' | tr ':' '_' | sed 's/__/_/g') 2>/dev/null done