場合によっては、フォルダー名にドット ( .
) を含めることが実用的な意味を持ちます。たとえば、L=0.5 で実行された実験のデータを保存する場合、フォルダーの名前は次のようになります。
experiment_L0.5
ファイル名でも同様の問題が発生する可能性があります。例:
file_L0.5.txt
Ubuntu で作業するのは悪い習慣でしょうか? これらのディレクトリを Windows ユーザーと共有するのはどうでしょうか?
答え1
私の知る限り、フォルダーやファイルに 1 つまたは複数のドットを使用して名前を付けても問題はありません。
Ubuntuでは、一般的にドットと3文字(.txtなど)をファイルの種類を識別するために使用しません。そのため、Ubuntuのコンテキストでは特別な意味はありません。これは、Windowsとファイルを共有するときに便利です。Ubuntuでは、魔法の数字ファイルの最初の数バイトにマジックナンバーを追加してファイルの種類を識別します。ただし、ドットと3文字の拡張子でファイルの種類を識別できる場合、Nautilusはマジックナンバーを無視します。この設定は変更できます。 nautilus に拡張機能を無視させる
Ubuntu では、ファイル名またはフォルダ名を のようにドットで始めると、その.experiment_L0.5
ファイルまたはフォルダは非表示になります。NautilusでCtrl+を押すと、非表示ファイルの表示を切り替えることができますH。Windows では、先頭が で始まるファイル名は.
非表示になりません。そのため、 という名前の非表示ファイルを Windows システムに転送すると.experiment_L0.5
、そのファイルははっきりと表示されます。
Ubuntu では、ファイル名の末尾にドットがあっても特別な意味はありません。ただし、Windows ではドットがファイル名と拡張子を区切るため、拡張子なしでドットで終わるファイル名は許可されません。Windows でそのようなファイルを作成しようとすると、ドットも拡張子もなく、名前だけのファイルが作成されました。
お役に立てれば。
答え2
短い答え
- Windows では次の文字は使用できません:
<>:"/\|?*
(ソース) - 他に推奨されない文字は、スペース
とドット
.
(ソース)- 名前にスペースが含まれていると、コマンドライン ツールの使用が難しくなります (難しくなりますが、不可能ではありません)
- ドットは RegEx で使用されます (例: を使用する場合
grep
)。先頭のドットは、Linux の慣例によりファイルを非表示にします。Windows では、ドットはファイル拡張子で使用され、ファイル タイプの検出に使用されます。
- また、Windowsでは
CON
、、、、、、、、、、、、、、、、、、、、、、、、およびPRN
というファイル名AUX
も許可されません。(CLOCK$
NUL
COM1
COM2
COM3
COM4
COM5
COM6
COM7
COM8
COM9
LPT1
LPT2
LPT3
LPT4
LPT5
LPT6
LPT7
LPT8
LPT9
ソース) - 私が知る限り、Unix ファイル システムで許可されていない文字は、
/
と null (null バイト、\0
) だけです。 - 参照:ファイルシステムの制限(どの Windows と互換性を持たせたいのかはわかりません)。
長い答え
技術的背景: ファイルシステム
Ubuntuはext4
ファイル システム。ファイル システムは、基盤となるストレージ (ディスク、SSD など) 上のファイルの保存場所、所有者/グループ/その他の読み取り/書き込み/実行の形式でのアクセス許可、タイムスタンプ、名前を追跡します。
ファイルシステムは、利用可能なストレージを構成します。最初のブロックは「スーパーブロック」と呼ばれます。このブロックは、ファイルシステムをマウントするために使用されます。私の知る限り、すべての最新のファイルシステムは、そのスペースをブロックに分割しています。ほとんどのファイルシステムのブロック サイズも固定されていると思います (確信はありませんが)。ただし、ブロック サイズは、ファイルシステムの作成時に構成できます。ext4 (および ext2 と ext3) は、ファイルとディレクトリにいわゆる「inode」を使用します。これらの inode には、他のブロック (inode または「データ ブロック」である可能性があります) へのポインタが含まれています。また、ファイルの「最初の」inode には、上で述べたすべての情報が含まれています。
もう 1 つの情報は、ファイルの「タイプ」です。「タイプ」は次のいずれかになります。
- 通常ファイル
- ディレクトリ
- デバイスファイル(ブロックまたはキャラクタデバイス)
- ...
実際、エディターでディレクトリを開くこともできます。
vim /home
ディレクトリには完全なパスは含まれず、コンテンツの名前のみが含まれているため、ファイルに を含められない理由がわかりません/
。便利だからかもしれません。( が許可されない理由を知っている人はいますか/
?)
ただし、他のファイル システムでは状況が異なります。FAT16 と FAT32 では、いわゆる「ファイル アロケーション テーブル」が使用されていました。つまり、ファイルに保存されているすべてのファイル、それらのファイルがどの「クラスター」で始まり、どのクラスターで終わるかが、単一リンク リストとして含まれたテーブルが存在するということです。
重要なことは、許可されていない文字はファイル システムによっても異なる可能性があるということです。
技術的背景: ファイルの種類
- Windowsはファイル拡張子を使用してファイルの種類を検出します
- Linux はファイルの種類を検出するために「マジックバイト」を使用します。マジックバイトはファイルの内容の一部であり、したがって名前とはまったく独立しています。これらのバイトはファイルタイプの仕様の一部です(png仕様例として、 または
.txt
(.html
どちらもテキスト ファイル)などの同じマジック バイトを持つファイルには、ファイル名拡張子も使用します。
関連している
答え3
.
完全性を保つために、1 つのドットまたは 2 つのドットのみで構成される名前は..
特別です。
.
現在のディレクトリを参照します..
親ディレクトリを参照します
.
これらのエントリは自動的に追加され、常に存在するため、またはという名前のファイルを持つことはできません..
。
答え4
Unix、Linuxファイルシステムでは、ファイル名の付け方は非常に柔軟です。唯一使えないファイル名はヌル文字または/
名前に を含む文字。ただし、名前の移植性の観点から、他のシステムで禁止/予約されている文字の使用は避けるのが賢明です。たとえば、" * : < > ? \ / |
Windows システムでファイルにアクセスする場合は、ファイル名に の文字 (NTFS によって制限されている文字) を使用しないでください。
そして.
ファイル名に(ピリオド)を使用することについて、それは問題ないと思うので、"予約済み"以下の Wikipedia リンクで述べられているように、どのシステムでも . 文字は使用できません (OpenVMS、MS-DOS、Windows ではファイル名/ディレクトリ名での使用が許可されていますが、VMS、MS-DOS、Windows では最後の出現が拡張子区切り文字として解釈されます)。
他のシステムでは、通常はファイル名の一部と見なされ、複数のピリオドが許可されることがあります。Unix では、先頭のピリオドは、ファイルまたはフォルダーが通常非表示であることを意味します。