異なるオペレーティングシステムのコマンドラインで許可される文字とエスケープする必要がある文字はどれですか?
異なるオペレーティングシステムのコマンドラインで許可される文字とエスケープする必要がある文字はどれですか?
回答:
ファイル名に関するウィキペディアの記事には、ファイル名の文字に関する議論があります。
このエッセイは有益です:Fixing Unix / Linux / POSIX Filenames。
この記事では、OS XとWindows XPを比較します:XとXP:ファイル名の禁止文字(PDF、pp約64〜66を参照)。
1,000ドルのAlexのファイル名に含めるべきではないもの
私がしなければならない文字を知らない国連は、エスケープされたが、Linuxには、そのような「N」(改行)、「T」(タブ)などのような特別な意味を持っているかもしれ文字をエスケープするために、おそらく良いアイデアではありませんしかし、それは一般にファイル操作の問題ではありません。おそらく、「エスケープされていない」というより「エスケープされた」という意味でしょう。最も一般的なものは、スペース、「>」、「<」など、シェルが解釈するものです。これらの説明については、リンクした記事を参照してください。
* nixのファイル名に使用できない文字はNUL
、とのみ/
です。Windowsでは、のみNUL
、:
と\
本当に許されますが、多くのアプリケーションでは、さらにも防止することを制限されていない?
、*
、+
、と%
。
シェルによって解釈されないために必要な場合を除き、ファイル名の文字をエスケープする必要はありません。
次の文字のいずれかを使用してエクスプローラーでWindows上にファイルを作成すると、その文字が許可されていないというエラーが表示されます。
\ / : * ? " < > |
良いリファレンスはこちらです:
ファイル、パス、名前空間の命名
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
Microsoftはさらに次のように述べています。
"... Windowsベースのデスクトッププラットフォームでは、無効なパス文字にはASCII / Unicode文字1〜31、引用符(")、より小さい(<)、より大きい(>)、パイプ(|)、バックスペースが含まれる場合があります(\ b)、null(\ 0)、タブ(\ t)。 "
http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx
\ / : * ? " < > |
それらすべてをエスケープし、GNU / Linuxシステムのmkdirで作成できます。を使用mkdir '?'
して?
ディレクトリを作成することもできます。これをテストするために、ramdiskとXFSファイルシステムを使用しました。