GNU/Linux >> Belajar Linux >  >> Linux

Nama file Linux/Windows/Unix/...:Karakter apa yang diperbolehkan? Mana yang tidak lolos?

Solusi 1:

Satu-satunya karakter yang tidak diperbolehkan dalam nama file di *nix adalah NUL dan / . Di Windows, hanya NUL , : , dan \ benar-benar tidak diizinkan, tetapi banyak aplikasi membatasinya lebih jauh, juga mencegah ? , * , + , dan % .

Karakter apa pun dalam nama file yang diperlukan sama sekali tidak perlu untuk diloloskan kecuali sebagaimana diperlukan agar tidak ditafsirkan oleh shell.

Solusi 2:

Ada diskusi tentang karakter nama file di artikel Wikipedia tentang Nama File.

Anda mungkin menganggap 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 Tidak Boleh Ada dalam Nama File seharga $1.000 Alex

Saya tidak tahu karakter mana yang harus un -escaped, tetapi di Linux, mungkin bukan ide yang baik untuk menghindari karakter yang mungkin memiliki arti khusus seperti "n" (baris baru), "t" (tab) dan lainnya, tetapi itu umumnya tidak menjadi masalah dalam operasi file. Mungkin maksud Anda "melarikan diri" daripada "tidak lolos". Yang paling umum adalah yang akan ditafsirkan oleh shell seperti spasi, ">", "<", dll. Lihat beberapa artikel yang saya tautkan untuk diskusi tentang itu.

Solusi 3:

Jika Anda membuat file di Windows dengan Explorer menggunakan salah satu karakter berikut, ia akan mengeluh bahwa karakter tersebut tidak diperbolehkan:

\ / : * ? " < > |

Referensi yang bagus ada di sini:

Memberi Nama File, Jalur, dan Ruang Nama
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

Microsoft lebih lanjut menyatakan:

"... pada platform desktop berbasis Windows, karakter jalur yang tidak valid mungkin menyertakan karakter ASCII/Unicode 1 hingga 31, serta tanda kutip ("), 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

Solusi 4:

Di Linux dan sistem lain yang kompatibel dengan POSIX, "/" dicadangkan sebagai pemisah direktori, dan "\0" (karakter NULL) menunjukkan akhir dari string. Segala sesuatu yang lain diizinkan.


Linux
  1. Apa itu file /dev/zero dan /dev/null di Linux?

  2. Bagaimana cara mendapatkan jalur proses di Unix / Linux

  3. Karakter apa yang dilarang dalam nama direktori Windows dan Linux?

  1. Mengapa begitu banyak /dev/tty di Linux?

  2. unix:///var/run/supervisor.sock tidak ada file seperti itu

  3. Haruskah situs web berada di /var/ atau /usr/ sesuai dengan penggunaan yang disarankan?

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Seberapa Portabel /dev/stdin, /dev/stdout Dan /dev/stderr?

  3. Cari tahu proses mana yang mengubah file