ファイル名にどの文字を使用できますか? [コピー]

ファイル名にどの文字を使用できますか? [コピー]

有効な文字を使用してUnixでファイル名を作成できるようです。

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

私が見つけた動作しない唯一の文字は次/のとおりですNUL

touch /
touch $'\0'

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

答え1

答えは次のとおりです。 Unixシリーズシステムでは、ファイル名は次のように構成されています。バイト、文字よりも。少なくともカーネルとAPIの観点からはそうです。

Unixファミリーカーネルは通常、\000 (ASCII:NUL)および(ASCII:スラッシュ)を除く\057 すべてのバイト値に中立です。 Linuxでは、ファイルシステム層に他の制限はありませんが、特定のFSドライバとそのモードのために通常翻訳できないため、特定の名前は拒否されます。たとえば、UTF-8タイプ-o iocharset=utf8cifsvfatDOS / Windows互換FSでは、名前の一部として\ 134(ASCII:バックスラッシュ)を使用することはできません。または、msdosタイプに8.3名のDOS制限が適用されます。

Ext3/ext4 には不明な制限がありますが、前述した\000\057.

関連情報