Karakter mana yang diperbolehkan dan yang mana dari mereka harus diloloskan pada baris perintah di sistem operasi yang berbeda?
Karakter mana yang diperbolehkan dan yang mana dari mereka harus diloloskan pada baris perintah di sistem operasi yang berbeda?
Jawaban:
Ada diskusi tentang karakter nama file di artikel Wikipedia tentang Nama File .
Anda mungkin menemukan esai ini informatif: Memperbaiki Nama File Unix / Linux / POSIX .
Artikel ini membandingkan OS X dan Windows XP: X vs. XP: Karakter Terlarang dalam Nama File (PDF, lihat hal. 64-66).
Hal-Hal Yang Seharusnya Tidak Ada dalam Nama File untuk $ 1.000 Alex
Aku tidak tahu mana karakter harus un -escaped, tapi di Linux, itu mungkin bukan ide yang baik untuk melarikan diri karakter yang mungkin memiliki arti khusus seperti "n" (baris baru), "t" (tab) dan lain-lain, tapi itu umumnya bukan masalah dalam operasi file. Mungkin maksud Anda "melarikan diri" daripada "tidak melarikan diri". Yang paling umum adalah yang akan ditafsirkan oleh shell seperti spasi, ">", "<", dll. Lihat beberapa artikel yang saya tautkan untuk diskusi tentang itu.
Satu-satunya karakter yang tidak diizinkan dalam nama file di * nix adalah NUL
dan /
. Pada Windows, hanya NUL
, :
dan \
yang benar-benar tidak diperbolehkan, tetapi banyak aplikasi membatasi yang lebih lanjut, juga mencegah ?
, *
, +
, dan %
.
Pada titik tidak ada karakter dalam nama file perlu untuk melarikan diri kecuali sebagaimana diperlukan agar tidak ditafsirkan oleh shell.
Jika Anda membuat file di Windows dengan Explorer menggunakan salah satu karakter berikut, itu akan mengeluh bahwa karakter tidak diperbolehkan:
\ / : * ? " < > |
Referensi yang baik ada di sini:
Penamaan File, Paths, dan Namespaces
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
Microsoft selanjutnya menyatakan:
"... pada platform desktop berbasis Windows, karakter jalur yang tidak valid dapat mencakup karakter ASCII / Unicode 1 hingga 31, serta kutipan ("), kurang dari (<), lebih besar dari (>), pipa (|), backspace (\ b), null (\ 0) dan tab (\ t). "
http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx
\ / : * ? " < > |
dari semuanya, dan membuatnya dengan mkdir di sistem GNU / Linux saya. Anda dapat menggunakan mkdir '?'
untuk membuat ?
direktori juga. Saya telah menggunakan sistem file ramdisk dan XFS untuk mengujinya.
Di Linux dan sistem yang kompatibel dengan POSIX lainnya, "/" dicadangkan sebagai pemisah direktori, dan "\ 0" (karakter NULL) menunjuk akhir dari string. Yang lainnya diizinkan.