Ringkasan:
- Windows: apa pun kecuali karakter kontrol ASCII dan
\/:*?"<>|
- Linux, OS-X: apa pun kecuali null atau
/
Pada semua platform, yang terbaik adalah menghindari karakter yang tidak dapat dicetak seperti karakter kontrol ASCII.
Windows
Di Windows, Windows Explorer tidak memungkinkan karakter kontrol atau \/:*?"<>|
Anda dapat menggunakan spasi. Jika Anda menggunakan spasi, Anda harus sering mengutip nama file ketika digunakan dari baris perintah (tapi aplikasi GUI tidak terpengaruh sejauh yang saya tahu). Sistem file Windows seperti NTFS tampaknya menyimpan encoding dengan nama file, tetapi UTF-16 adalah standar.
Beberapa bagian Windows peka huruf besar kecil, bagian lainnya peka huruf besar kecil. Sangat mudah untuk membuat nama file yang berbeda seperti "Ab" dan "ab" pada sistem file Windows NTFS. Nama-nama ini merujuk pada file terpisah yang berisi konten terpisah yang berbeda. Namun, meskipun prompt perintah Windows akan dengan senang hati mendaftarkan kedua file menggunakan dir
, Anda tidak dapat dengan mudah mengakses atau memanipulasi salah satu dari mereka menggunakan perintah seperti type
. Lihat di bawah.
Linux, OS-X
Di Linux dan OS-X hanya /
set ASCII yang dapat dicetak dilarang saya percaya. Beberapa karakter (seperti shell metacharacters *?!
) akan menyebabkan masalah pada baris perintah dan akan membutuhkan nama file untuk dikutip atau melarikan diri secara tepat.
Linux filesystems seperti ext2, ext3 adalah agnostik set karakter (saya pikir mereka memperlakukannya lebih atau kurang sebagai aliran byte - hanya null dan /
dilarang). Ini berarti Anda dapat menyimpan nama file dalam pengkodean UTF-8. Saya percaya itu tergantung pada shell atau aplikasi lain untuk mengetahui pengkodean apa yang harus digunakan untuk mengkonversi nama file dengan benar untuk ditampilkan atau diproses.
Kesimpulan
Jadi Anda mungkin bisa menggunakan sesuatu seperti ✣
(jika tidak terlalu sulit untuk mengetik)
Huruf besar (dalam) sensitivitas pada Windows
C> dir /B
Ab
aB
аB
C> type Ab
b
b
C> type aB
b
b
C> type аB
unicode homograph
Perhatikan bahwa kita tidak dapat mengetik konten file kedua, type
perintah Windows hanya mengembalikan konten Ab sebagai gantinya. File ketiga akan berbeda dari aB di Linux juga.
(Windows 10 NTFS).