回答:
私の知る限り、1つまたは複数のドットを含むフォルダーとファイルの名前付けに問題はありません。
Ubuntuは通常、ドットと3文字(.txtなど)を使用してファイルタイプを識別しません。したがって、これはUbuntuのコンテキストでは特別な意味を持ちません。これは、Windowsとファイルを共有するときに便利です。Ubuntuは、ファイルの最初の数バイトでマジックナンバーを使用してファイルタイプを識別します。しかし、ノーチラス。ファイルタイプを識別するためにドットと3文字の拡張子が使用可能な場合、マジックナンバーは無視されます。この設定は変更できます。参照 拡張を無視するオウムガイフォース
Ubuntuでは、などのドットでファイルまたはフォルダー名を開始.experiment_L0.5
すると、ファイルまたはフォルダーが非表示になります。NautilusでCtrl+ Hを押すと、隠しファイルの表示を切り替えることができます。Windowsでは、。で始まるファイル名。隠されていません。したがって.experiment_L0.5
、Windowsシステムに名前の付いた隠しファイルを転送すると、わかりやすく表示されます。
Ubuntuでは、ファイル名の末尾に特別な意味がないため、ドットで終わる場合があります。ただし、Windowsでは、ファイル名と拡張子はドットで区切られており、ドットで終わるが拡張子のないファイル名は使用できません。Windowsでそのようなファイルを作成しようとしたときに、名前だけで、ドットも拡張子も付いていないファイルがありました。
お役に立てれば。
fname.
、Windowsでは末尾のドット(など)も許可されていないと思います。
test.
、Windowsで名前が付けられたファイルを作成できませんでした。回答を更新します。
<>:"/\|?*
(source)
とドット.
(source)です。
grep
)。先頭のドットは、Linuxの慣例によりファイルを隠します。Windowsでは、ファイルタイプの検出に使用されるファイル拡張子にドットが使用されます。CON
、PRN
、AUX
、CLOCK$
、NUL
COM1
、COM2
、COM3
、COM4
、COM5
、COM6
、COM7
、COM8
、COM9
LPT1
、LPT2
、LPT3
、LPT4
、LPT5
、LPT6
、LPT7
、LPT8
、とLPT9
。(ソース)/
、null(nullバイト\0
)のみです。Ubuntuはext4
ファイルシステムを利用します。ファイルシステムは、基礎となるストレージ(ディスクまたはSSDなど)上のファイルの保存場所、所有者/グループ/その他の形式のアクセス許可、読み取り/書き込み/実行、タイムスタンプ、名前を追跡します。
ファイルシステムは、使用可能なストレージを構成します。最初のブロックは「スーパーブロック」と呼ばれます。このブロックは、ファイルシステムをマウントするために使用されます。私の知る限り、すべての最新のファイルシステムは、スペースをブロックに分割しています。ファイルシステムの作成時にブロックサイズを構成することはできますが、ほとんどのファイルシステムのブロックサイズも固定されていると思います(そして、私はそれについてあまり知りません)。ext4(およびext2とext3)は、ファイルとディレクトリにいわゆる「inodes」を使用します。これらのiノードには、他のブロック(iノードまたは「データブロック」でもある)へのポインターが含まれています。また、ファイルの「最初の」iノードには、前述のすべての情報が含まれています。
もう1つの情報は、ファイルの「タイプ」です。「タイプ」には次のものがあります。
実際、エディターでディレクトリを開くこともできます:
vim /home
ディレクトリには絶対パスは含まれず、コンテンツの名前のみが含まれるため、ファイルに/
。を含めることができない理由はわかりません。便利かもしれません。(なぜ/
許可されていないのか誰もが知っていますか?)
ただし、他のファイルシステムでは状況が異なります。FAT16およびFAT32は、いわゆる「ファイルアロケーションテーブル」を使用しました。これは、ファイルに保存されているすべてのファイルを含むテーブルがあり、その「クラスター」で開始し、どのクラスターで単一リンクリストとして終了するかを意味します。
私があなたに伝えたかった重要なことは、許可されていない文字もファイルシステムに依存するかもしれないということです。
.txt
またはなどの同じマジックバイトを持つファイルのファイル名拡張子も使用します.html
(両方ともテキストファイルです)。.txt
および.html
ファイルは確かに異なる「魔法の値を」持っているか-にhtmlファイルの名前を変更しようとtest.txt
して実行されていますfile test.txt
。元の質問とはあまり関係ありませんが、それでも:)
file
:およびfile
マジック値を使用してファイルのタイプを決定するだけではありません。すべての有効なHTMLファイルは(読み取り可能な文字を含むという意味で)テキストファイルですが、すべての有効なテキストファイルが(W3Cバリデーターに対して検証するという意味で)有効なHTMLファイルではありません。そのため、実際には非常に多くの種類のファイル(html、xml、csv、js、php、c、h、cppなど)がテキストファイルです。バイナリファイルのみに、明確に定義された位置にあるマジックバイトがあります。上記で指定したすべてのファイルには、コンテンツの前に任意の空白を含めることができます。
完全を期すために、単一のドット.
または2つのドットのみで構成される名前..
は特別です。
.
現在のディレクトリを参照します..
親ディレクトリを参照しますこれらのエントリは自動的に追加され、常に存在するため、.
or という名前のファイルを作成することはできません..
。
Unix、Linuxファイルシステムでは、ファイルの命名は非常に柔軟です。使用できない唯一のファイル名は、ヌル文字または/
名前にを含むものです。しかし、他のシステムで名前の移植性の観点から禁止/予約されている文字の使用を避けることは確かに良い習慣です。" * : < > ? \ / |
Windowsシステムでファイルにアクセスする場合は、ファイル名に(NTFSで制限されている)文字を使用しないでください。
そして、使用について.
、ファイル名に(ピリオド)を、私はしていないようですと、それは問題ないはずだと思う「予約」どこでその使用のOpenVMS以外のシステムのいずれかの文字(、MS-DOSとWindowsファイル/ディレクトリ名は許可されますが、最後の出現は、VMS、MS-DOS、およびWindowsの拡張子区切り文字として解釈されます)。
他のシステムでは、通常、ファイル名の一部と見なされ、複数のピリオドが許可される場合があります。Unixでは、先頭のピリオドはファイルまたはフォルダーが通常非表示であることを意味します。