Taruhan teraman adalah merujuk ke entri wikipedia untuk set karakter yang diizinkan untuk sistem operasi apa pun. Itu bisa ditemukan di sini .
Sebagai contoh, untuk sebagian besar sistem berbasis unix, set karakter yang diizinkan adalah 8 bit set dan karakter yang dipesan adalah karakter nol (NUL, '\0'
). Namun, itu bukan praktik yang baik untuk menggunakan karakter khusus dalam nama file karena mereka menimbulkan masalah saat menghapusnya.
Misalnya, saya dapat memiliki nama file -ramesh.txt
dan mencoba menghapusnya seperti di bawah ini.
rm -ramesh.txt
rm: invalid option -- 'a'
Try `rm ./-ramesh.txt' to remove the file `-ramesh.txt'.
Try `rm --help' for more information.
rm "-ramesh.txt"
rm: invalid option -- 'a'
Try `rm ./-ramesh.txt' to remove the file `-ramesh.txt'.
Try `rm --help' for more information.
Saya perlu menghapus file sebagai,
rm -- "-ramesh.txt"
rm: remove regular empty file `-ramesh.txt'? y
Rincian lebih lanjut dapat ditemukan dari jawaban ini juga .
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.
Jadi untuk menyimpulkan, masalahnya bukan dalam menggunakan karakter khusus untuk nama file tetapi tentang cara menanganinya.