UNIXで有効な文字だけを使用してファイル名を作成することは可能だと思います。
touch \; &&
touch \\ &&
touch \" &&
touch $'\n' &&
touch $'\t' &&
touch $'\v' &&
touch $'\23' &&
touch $'\13' &&
echo "DONE!"
機能しないことがわかった文字は/
およびNUL
:
touch /
touch $'\0'
ファイル名に使用できない、または使用できない他の文字はありますか?
答えは: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
。