私はUbuntuボックスにたくさんのファイルを持っていますが、それらのファイル名にはWindowsが受け入れないさまざまな文字が含まれています(ほとんどは「:」と「*」ですが、おそらく他の文字もあります)。
これらすべての名前を変更してWindowsマシンに移動する最も簡単な方法は何ですか?これらの文字を「[コロン]」や「[アスタリスク]」などに置き換えてもかまいません。
Glindraの名前変更 および デトックス を見てください。
Glindraファイルユーティリティは、WindowsまたはLinuxのいずれかにインストールできます。 Windowsでのファイル名のクリーンアップの例:
rena *.* -portable
rena *.* -safe
Recuvaを試してください。
これは、Windowsに対応していないファイル名を処理する、私が見つけた唯一のWindowsユーティリティです。
有効削除されていないファイルのスキャン(破損または再フォーマットされたディスクからの回復用)を有効にして、フォルダーをスキャンします。復元時に、フォルダ構造の復元を有効にします。 Recuvaは、ディレクトリ全体を別の場所に効果的に「コピー」すると同時に、わかりにくいファイル名を「サニタイズ」します。
Linuxを使用せず、何もテストしなくても、以下のようなワンライナーを使用できると思います。
1文字を変更するには:
find . -type f -exec rename 's/:/\[colon\]/g' {} +
find . -type f -exec rename 's/\*/\[asterisk\]/g' {} +
そして最後に、英数字以外のすべての文字を削除します。
find . -type f -exec rename 's/[^A-Za-z0-9._]//g' {} +
ファイルがすでにNTFSボリューム上にある場合は、Windowsからchkdskを実行すると問題が「解決」するようです。残念ながら、問題のあるファイルを削除することでそうしているようです。
私は最初の2つの答えとpyRenamer(GUI)の組み合わせで管理しました。 Linuxでは、pyRenamerを使用して、フォルダー名(ディレクトリ)内のスペースを折りたたんで(スペースを何も置き換えずに)、他のプログラム(Glindraの名前変更)が再帰的に機能するようにしました(アンダースコアを付けることができます)。ファイルから、スペースを節約するためにいくつかのウィンドウで許容される文字または単語を取り出し、同様にファイル名のスペースを折りたたんだ。次に、renaを実行してWindows以外の文字を取り出し、フラッシュドライブに保存してから、Recuvaを使用してWindowsの下のフォルダーに「復元」しました。 Recuvaは、ファイルパスが長すぎるかどうかを示します(また、Windows以外の文字も削除します)。ファイル名のパスをチェックして、Windowsの最大制限である255(または、ある程度の余裕を持たせるために240)を下回っているかどうかを確認するツールはまだ見つかりません。