GNU/Linux >> Linux の 問題 >  >> Linux

Linux/Windows/Unix/... ファイル名:使用できる文字は?エスケープされていないのはどれですか?

解決策 1:

*nix のファイル名で許可されていない唯一の文字は NUL です と / . Windows では NUL のみ 、 : 、および \ は本当に許可されていませんが、多くのアプリはそれをさらに制限し、 ? も防止しています 、 *+ 、および % .

ファイル名にどの文字も必要ありません シェルによって解釈されないようにするために、必要な場合を除いてエスケープされます。

解決策 2:

ファイル名に関するウィキペディアの記事で、ファイル名の文字についての議論があります。

Unix/Linux/POSIX ファイル名の修正

この記事では、OS X と Windows XP を比較します:X vs. XP:ファイル名に使用できない文字 (PDF、pp 約 64-66 を参照)。

$1,000 アレックスのファイル名に含めるべきではないもの

禁止すべき文字がわからない -escaped.おそらく、「エスケープされていない」ではなく「エスケープされた」という意味です。最も一般的なものは、スペース、">"、"<" など、シェルが解釈するものです。それらの議論については、私がリンクした記事のいくつかを参照してください。

解決策 3:

次の文字のいずれかを使用して Windows でエクスプローラーを使用してファイルを作成すると、その文字が許可されていないというメッセージが表示されます:

\ / : * ? " < > |

良いリファレンスはここにあります:

ファイル、パス、名前空間の命名
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

Microsoft はさらに次のように述べています:

"... Windows ベースのデスクトップ プラットフォームでは、無効なパス文字には 1 から 31 までの ASCII/Unicode 文字、および引用符 (")、より小さい (<)、より大きい (>)、パイプ (|)、バックスペースが含まれる場合があります。 (\b)、ヌル (\0)、およびタブ (\t)。"

http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx

解決策 4:

Linux およびその他の POSIX 互換システムでは、「/」はディレクトリ区切り文字として予約されており、「\0」(NULL 文字) は文字列の末尾を示します。それ以外はすべて許可されます。


Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. / dev / stdin、/ dev / stdout、および/ dev / stderrはどの程度移植可能ですか?

  3. Unix / linuxでディレクトリへのハードリンクが許可されていないのはなぜですか?

  1. Linux –異なるLinux / UNIXカーネルは交換可能ですか?

  2. Unix / Linux でプロセスのパスを取得するにはどうすればよいですか

  3. Windows および Linux のディレクトリ名で禁止されている文字は何ですか?

  1. Linux 環境変数名で使用できる文字

  2. Linux に /dev/tty がたくさんあるのはなぜですか?

  3. unix:///var/run/supervisor.sock そのようなファイルはありません