ファイル名を表さないことが保証されている文字列を作成したい場合は、Windowsで次のいずれかの文字を入力できます。
\ / : * ? | < >
例えば
this-is-a-filename.png
?this-is-not.png
Linuxで文字列を「おそらくファイルではない」と識別する方法はありますか?
ファイル名を表さないことが保証されている文字列を作成したい場合は、Windowsで次のいずれかの文字を入力できます。
\ / : * ? | < >
例えば
this-is-a-filename.png
?this-is-not.png
Linuxで文字列を「おそらくファイルではない」と識別する方法はありますか?
制限はほとんどありません。とを除いて'/'
、'\0'
何でも使用できます。ただし、これだけの柔軟性を持たせるのは得策ではないと考える人もいます。
Linuxで本当に無効なパス名は空の文字列だけです。これは、無効な名前が1つだけ必要な場合に機能する可能性があります。""のような文字列を使用することもできます。これは、ファイル( "")を参照することはできますが、正規のパス名で///foo
はありません。もう1つの可能性は、「 」のようなものです。これは、POSIXで定義されたディレクトリ以外の意味があるためです。通常のファイルを参照できない文字列のみが必要な場合は、「」または「」を使用できます。これらは常にディレクトリであるためです。/foo
/dev/null/foo
/dev/null
/
.
技術的には無効ではありませんが、名前の先頭にダッシュ(-)が付いているファイルは、多くの問題を引き起こします。コマンド引数と競合しているためです。
個人的には、問題の多くはLinuxではなく、Linuxで使用しているアプリケーションにあると思います。
アマロックを例にとってみましょう。最近、ライブラリに表示されていないWindowsマシンからコピーした特定のアーティストに気づきました。ファイルがそこにあることを確認して確認したところ、フォルダ名(アーティストにちなんで名付けられた)の特定の文字が実際の文字ではなく奇妙に見える正方形で表されていることに気付きました。
シェル端末では、ファイル名はさらに奇妙に見えます。/ Music / Albums / Einst $'\ 374' rzende \ Neubautenは、いかに奇妙な例です。
これらのファイルは確かにそこにありましたが、Amarokは何らかの理由でそれらを見ることができませんでした。いくつかのシェルトリックを使用して、それらの名前を適切なバージョンに変更し、MusicbrainzPicardを使用してASCIIのみの文字で名前を変更することができました。残念ながら、Picardはファイルの名前を変更するまでファイルを開くことができなかったため、シェルスクリプトが必要でした。
全体として、これはトリッキーな領域であり、特定のフォルダまたはファイル名にファンキーな文字が含まれているWindowsとLinuxの間で音楽コレクションを同期しようとすると、非常に厄介になるようです。
最も安全な方法は、ASCIIのみのファイル名に固執することです。