Unixでピリオドを含むファイルを許可するのはなぜですか?最後に名前?これは便利ですか?
たとえば、
filename.
ファイル拡張子をエコーする簡単な機能があるので、これを尋ねます。
ext() {
echo ${1##*.}
}
しかし、ファイル名がで終わると何も印刷されないことがわかっているので、.
次のように書くことがより信頼できるかどうか疑問に思います。
ext() {
extension=${1##*.}
if [ -z "$extension" ]; then
echo "$1"
else
echo "$extension"
fi
}
明らかに達成しようとしている作業によって異なりますが、.
ファイル名の末尾に追加することが許可されていない場合は、最初にそれについて何も知りたくありません。
ベストアンサー1
Unixファイル名ただ一連のバイトで、/
任意の場所で合計を除くすべてのバイトを含めることができます。NUL
Windowsやそのファイルシステムなどの組み込みの「拡張子」の概念がないため、ファイル名が通常表示される文字で終わったり起動したりすることを許可しない理由はありませ.
んx
。
Unixでファイル名の末尾にピリオドを許可するのはなぜですか? 「バイトシーケンス」は、何かを計算する必要がある動機付けの理由がない場合に実際に計算する理由がない場合の単純で非排他的な名前定義です。特定のコンテンツを具体的に除外するルールを開発して適用するには、より多くの作業が必要です。
どの目的に使用されますか?もちろん、その名前でファイルを生成できます。で終わるファイル名を使用できますかx
?通常.
、aで終わるファイル名を生成するとは言えませんが、両方とも明らかに次の一部.
です。x
移植可能なファイル名文字セットこれは普遍的にサポートされなければならず、どちらにも特別なものがないので、それを使用する必要がある場合(おそらくマシン生成エンコーディングを使用して)、それを行うことができ、動作すると信じられます。
.
また、現在のディレクトリと親ディレクトリを参照する特殊ファイル名(ドット)と(ドットポイント)は次のとおりです。..
必須ファイル名を処理するすべてのコードは通常、.
これらの問題を解決する必要があります。