web-dev-qa-db-ja.com

ファイル名に使用できる文字は何ですか?

UNIXで有効な文字だけを使用してファイル名を作成することは可能だと思います。

touch \; &&
touch \\ &&
touch \" &&
touch $'\n' &&
touch $'\t' &&
touch $'\v' &&
touch $'\23' &&
touch $'\13' &&
echo "DONE!"

機能しないことがわかった文字は/およびNUL

touch /
touch $'\0'

ファイル名に使用できない、または使用できない他の文字はありますか?

9
wefwefa3

答えは:Unixライクなシステムでは、ファイル名は文字ではなくbytesで構成されます。少なくともカーネルとそのAPIの観点から。

Unixライクなカーネルは通常、\000(ASCII:NUL)と\057(ASCII:スラッシュ)を除くすべてのバイト値に対して中立です。 Linuxでは、ファイルシステムレイヤーに他の制限はありませんが、特定のFSドライバーと特定のモードでは、通常は変換できないため、一部の名前が拒否されます。たとえば、 UTF-8でマウントされたもの(たとえば、タイプcifsまたはvfat)に無効な-o iocharset=utf8を使用してファイル名を作成することはできません。DOS/ Windows互換のものはありませんFSesを使用すると、\ 134(ASCII:バックスラッシュ)を名前の一部にすることができます。または、msdosタイプを使用すると、8.3名に関するDOSの制限が適用されます。

Ext3/ext4に制限があることは知られていないが、前述の\000および\057

14
Incnis Mrsi