Özet:
- Windows: ASCII'nin kontrol karakterleri ve
\/:*?"<>|
- Linux, OS-X: boş veya
/
Tüm platformlarda, ASCII kontrol karakterleri gibi yazdırılamayan karakterlerden kaçınmak en iyisidir.
pencereler
Windows'ta Windows Gezgini kontrol karakterlerine izin vermiyor veya \/:*?"<>|
boşluk kullanabilirsiniz. Boşluk kullanırsanız, komut satırından kullanıldığında genellikle dosya adını belirtmeniz gerekir (ancak GUI uygulamaları bildiğim kadarıyla etkilenmez). NTFS gibi Windows dosya sistemi görünüşte dosya adıyla kodlamayı depolar, ancak UTF-16 standarttır.
Windows'un bazı bölümleri büyük / küçük harf duyarlıdır, diğer bölümler büyük / küçük harf duyarlı değildir. Windows NTFS dosya sisteminde "Ab" ve "ab" gibi farklı dosya adları oluşturmak kolaydır. Bu adlar, ayrı ayrı içerik içeren ayrı dosyalara atıfta bulunur. Ancak, Windows komut istemi kullanarak her iki dosyayı da mutlu bir şekilde listeleyse de dir
, bunlardan birine gibi komutları kullanarak kolayca erişemez veya bunları işleyemezsiniz type
. Aşağıya bakınız.
Linux, OS-X
Linux ve OS-X'te yalnızca /
yazdırılabilir ASCII setinin yasak olduğunu düşünüyorum. Bazı karakterler (kabuk meta karakterleri gibi *?!
) komut satırlarında sorunlara neden olur ve dosya adının uygun şekilde alıntılanmasını veya kaçılmasını gerektirir.
Ext2, ext3 gibi Linux dosya sistemleri karakter kümesi agnostiktir (bence az çok bayt akışı olarak görürler - sadece boş ve /
yasaktır). Bu, dosya adlarını UTF-8 kodlamasında saklayabileceğiniz anlamına gelir. Dosya adını görüntülemek veya işlemek üzere uygun şekilde dönüştürmek için hangi kodlamanın kullanılacağını bilmek kabuğun veya diğer uygulamaların kullanımına bağlı olduğuna inanıyorum.
Sonuç
Böylece, muhtemelen güvenli bir şekilde, örneğin yazmak ✣
çok zor olmasaydı gibi bir şey kullanabilirsiniz.
Windows'ta büyük / küçük harf duyarlılığı
C> dir /B
Ab
aB
аB
C> type Ab
b
b
C> type aB
b
b
C> type аB
unicode homograph
İkinci dosyanın type
içeriğini yazamadığımızı unutmayın , Windows komutu bunun yerine Ab içeriğini döndürür. Üçüncü dosya da Linux'taki aB'den farklı olurdu.
(Windows 10 NTFS).