ファイル名を無効にするために、「:」や「?」などの文字を処理する方法は?

ファイル名を無効にするために、「:」や「?」などの文字を処理する方法は?

私は音楽ファイルを含むディレクトリを移動しようとしましたが、thunar 4.10 ファイル名が無効であると文句を言いました。

わかると、ファイル名(曲のタイトル)に疑問符があることがわかりました。私はこれが問題だと思ったので、疑問符を削除するとファイルをコピーできました。 「?」を再度追加することはできません。コマンドラインでも試しましたが、やはりrename機能しませんでした。 (thunarが内部的に何を使用しているのかわからないので、このテストは議論の余地があるかもしれません)

疑問符が原因でファイル名が無効になると、ファイルは最初にどのように生成されますか?SoundJuicer新しく購入したCDでこれらのファイルを作成しました。さまざまなプレーヤーでファイル(名前に「?」を含む)を再生できます。

ここで何が起こっているのでしょうか?名前のみ「?」を使用できますか?他のアプリケーションでは処理できるように見えますが、なぜファイルマネージャはこれらのファイルを処理できないのですか?

修正する: 次の曲には「:」が含まれています。 「?」のような問題

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

私はLinuxでファイル名の問題を経験したことがなく、合理的なすべてを投げることができ、うまく動作するので、私の直感も私に言うことです。これがここで質問が提起される理由です。以前は間違ったファイル名を見たことがありません。

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

ターゲットは、果たして今日購入したUSBフラッシュドライブです。開いてgpartedFAT32でフォーマットしました。

よくわかりませんが、それはWindowsの問題ですよね? Windowsには、明らかに?およびを含むサポートされていない文字がたくさんあります:。私は正しいですか?

ベストアンサー1

これらの文字はFAT32ファイルシステムでは?無効であるため、:そのシステムにファイルをコピーする必要がある場合〜する名前を変更する必要があります。

コマンドラインでこれらの文字を置き換えたり、コマンドラインツールrename(時には次のようにも呼ばれる)を使用して削除したりできます。prename_

rename 's/[?<>\\:*|\"]/_/g'    # Change invalid characters to _
rename 's/[?<>\\:*|\"]//g'     # Remove invalid characters

私はこれに慣れていないので、thunarこの交換/交換作業を直接実行する方法があるかどうかわかりません。

ちょうど見つけたLinuxからfat32ファイルシステムにコピー:無効なパラメータpaxこれは、ローカルディスク上の完全なファイル名を維持しながらファイル名を変換できるように、コマンド(ファイルをコピーするための別のツール)にそれを追加することを提案します。コピー中USBデバイスへ:

pax -rw -s '/[?<>\\:*|\"]/_/gp' *.mp3 /media/usb_device

完全なファイル名が本当に重要な場合は、USBスティックを再フォーマットしてLinuxベースのファイルシステムを使用することをお勧めしますext4利用可能なWindowsドライバファイルextNシステムファミリ(必要な場合)。 )

おすすめ記事