web-dev-qa-db-ja.com

「:」や「?」などの文字の扱い方それは無効なファイル名になりますか?

thunar 4.10で音楽ファイルを含むディレクトリを移動しようとしたところ、ファイル名が無効であるとのメッセージが表示されました。

1つのファイル名(曲のタイトル)に疑問符が含まれていることがわかりました。私はこれが問題であると疑い、疑問符を削除し、実際にファイルをコピーすることができました。 「?」を追加する戻ることはできませんでした。また、コマンドラインでrenameを使用して試しましたが、それも機能しませんでした。 (フードの下でthunarが何を使用するかわからないため、このテストは意味がないかもしれません)

疑問符でファイル名が無効になった場合、このファイルを最初に作成するにはどうすればよいですか?新しく入手したCDからSoundJuicerでファイルを作成しました。いろいろなプレイヤーでファイル(名前に「?」が付いている)を再生することができました。

何が起きてる? 「?」をいただけますか名前かどうか?他のアプリケーションで問題がないように見えるのに、ファイルマネージャーがそのようなファイルを処理できないのはなぜですか?

更新:次の曲には「:」が含まれています。 「?」と同じ問題。

これらはUnixにとって無効な文字ではありません。通常、NUL文字と/文字のみが無効なファイル名です(/はディレクトリ区切り文字です)。

これは私の直感にも教えられました。Linuxではファイル名に問題がなく、実用的なものをほとんど投げることができたからです。これが、ここで質問の動機となったものです。これまでに無効なファイル名に出会ったことはありません。

ファイルをUSBスティックに移動しようとしていましたか?もしそうなら、そのスティックはFAT32またはネイティブLinuxファイルシステムとしてフォーマットされていますか?

ターゲットは確かに私が今日購入したUSBスティックです。 gpartedを開いたところ、FAT32でフォーマットされています。

正確にはわかりませんが、Windowsの問題でしょうか。また、Windowsにはサポートされていない文字が多数あり、?および:が含まれています。私は正しいですか?

5
null

@ roaimas answer を特定のディレクトリの下のすべてのファイルに適用するには、次のコマンドを使用できます

find /path/to/dir -exec rename 's/[?<>\\:*|\"/_/g' {} \;

これは、すべてのファイルにrenameを適用します。

1
serv-inc