.NETでは、カーネルがサポートするファイルシステムタイプのリストを見つけることができます/proc/filesystems
。
ファイルシステムをマウントすることに加えて、オプションまたはmount
?でiocharset
使用できる文字セットを決定する方法はありますか?nls
理想的には、リストが Bash 配列にある必要があるコマンドを完了するために使用できます。
答え1
NLS 文字セットは次のように提供されます。名前が次から始まるモジュールnls_
。サポートされている文字セットを確認するには、次のようにします。
以下で組み込み文字セットを見つけます
/lib/modules/$(uname -r)/modules.builtin
。grep kernel/fs/nls/nls_ /lib/modules/$(uname -r)/modules.builtin
利用可能なモジュールのリスト
/lib/modules/$(uname -r)/kernel/fs/nls
:echo /lib/modules/$(uname -r)/kernel/fs/nls/nls_*
利用可能なリストを取得するには、モジュールファイルパスから文字セット名を抽出する必要があります。
#!/bin/bash
charsets=($(grep ^kernel/fs/nls/nls_ /lib/modules/$(uname -r)/modules.builtin)
/lib/modules/$(uname -r)/kernel/fs/nls/nls_*)
charsets=("${charsets[@]##*/nls_}"); charsets=("${charsets[@]%.ko}")
nls_base.ko
実際のエンコーディングを実装せずに除外すると、コマンドの完成に適したリストが生成されます。
$ compgen -W "${charsets[*]}" -X base --
ascii
cp1250
cp1251
cp1255
cp437
cp737
cp775
cp850
cp852
cp855
cp857
cp860
cp861
cp862
cp863
cp864
cp865
cp866
cp869
cp874
cp932
cp936
cp949
cp950
euc-jp
iso8859-13
iso8859-14
iso8859-15
iso8859-1
iso8859-2
iso8859-3
iso8859-4
iso8859-5
iso8859-6
iso8859-7
iso8859-9
koi8-r
koi8-ru
koi8-u
utf8