Di Linux dan sistem terkait Unix lainnya, hanya ada dua karakter yang tidak dapat muncul dalam nama file atau direktori, dan itu adalah NUL '\0'
dan slash '/'
. Slash, tentu saja, dapat muncul dalam nama path, memisahkan komponen direktori.
Rumor 1 mengatakan bahwa Steven Bourne (dari 'shell' ketenaran) memiliki direktori yang berisi 254 file, satu untuk setiap huruf (kode karakter) yang dapat muncul dalam nama file (tidak termasuk /
, '\0'
; nama .
itu direktori saat ini, tentu saja ). Itu digunakan untuk menguji shell Bourne dan secara rutin membuat kekacauan pada program yang tidak waspada seperti program cadangan.
Orang lain telah membahas aturan Windows.
Perhatikan bahwa MacOS X memiliki sistem file case-insensitive.
1 Adalah Kernighan & Pike dalam
Praktek Pemrograman yang mengatakan banyak hal dalam Bab 6, Pengujian, §6,5 Tes Tekanan:
Ketika Steve Bourne sedang menulis shell Unix-nya (yang kemudian dikenal sebagai shell Bourne), ia membuat direktori 254 file dengan nama satu karakter, satu untuk setiap nilai byte kecuali '\0'
dan memangkas, dua karakter yang tidak dapat muncul di Unix nama file. Dia menggunakan direktori itu untuk semua jenis tes pencocokan pola dan tokenization. (Direktori uji tentu saja dibuat oleh sebuah program.) Selama bertahun-tahun kemudian, direktori itu adalah kutukan dari program file-tree-walking; itu menguji mereka untuk kehancuran.
Perhatikan bahwa direktori harus berisi entri .
dan ..
, jadi itu bisa dibilang 253 file (dan 2 direktori), atau 255 entri nama, bukan 254 file. Ini tidak mempengaruhi keefektifan anekdot, atau pengujian hati-hati yang diuraikannya.
echo abc > "ab.;,=[1]"