OS X altında bir dosya adı için geçersiz karakterler nelerdir?


22

Bu bilgiyi bulmakta sorun yaşıyorum ve deneme yanılma bana hiçbir şeyin olmayabileceğini söylüyor. OS X Lion'daki (10.7) bir dosya adı için geçersiz karakterler nelerdir?


1
Tek eğik çizgi? Tek ters eğik çizgi? Tek veya çift dönem?

Tüm eğik çizgi kombinasyonları ve single'ları çalışıyor gibi görünüyor, ancak zaten kullanılmakta olan tek ve çift dönem başarısız oluyor. İnşallah bundan daha fazlası vardır .... :)
Rodney Foley

ASCII NUL kullanamazsınız. Bir süre düşün, neden kendinin olduğunu anlayabilirsin ...
Donal Fellows

@ Donal ASCII NUL kolayca "yaz" ya da yanlışlıkla yanlışlıkla yapabileceğiniz bir şey değildir.
Rodney Foley

1
Bize biraz bağlam verir misin, Rodney? Ne yapmaya çalıştığınızı biraz anladıysak, bu soruyu cevaplamak çok yardımcı olacaktır ... AFAIK, birkaç potansiyel sorun var: Tanrıya dürüstçe yasak karakterler, giriş yapmak imkansız karakterler. terminal kabuğundaki yolu ve Finder'da düzgün görüntülenmeyecek karakterleri kullanın.
Shog9

Yanıtlar:


7

HFS Plus , " Unicode , NUL. OS API'ler de dahil olmak üzere herhangi bir karakter, eski nedenlerle bazı karakterleri sınırlayabilir " seçeneğine izin verir .


3
Techincally (bir 2 bayt uzunluğunda Pascal dizeleri olarak dahili isimleri temsil beri) HFS + dosya sistemi, tüm Unicode karakterleri verir, ancak OS X tarafından sağlanan bir API AFAIK hiçbiri bir çizgi ile ve açık / dosyaları oluşturmak izin '/'veya NUL '\0'onlarda .
Adam Rosenfield

Karbon veya Kakao daki gibi API'ler? Terminal'in bu gibi kısıtlamalar altında olduğunu varsayalım;
tobylane

8

OS X altında bir dosya adı için geçersiz karakterler nelerdir?

wiki HFS + :

Dosya adlarında izin verilen karakterler Unicode, NUL dahil herhangi bir karakter. İşletim Sistemi API'leri eski nedenlerden dolayı bazı karakterleri sınırlayabilir


Finder şu anda dosya adlarına sütun girmesine izin vermiyor, ancak ters eğik çizgiler girilmesine izin veriyor. Bununla birlikte, Finder'da eğik çizgiler olarak gösterilen karakterler, kabuklarda iki nokta üst üste, tam tersi şekilde gösterilir. Finder, hiçbir ASCII kontrol karakterine de izin vermez.


Bash \000(NUL) dışındaki tüm kontrol karakterlerine izin veriyor gibiydi . Çıktısını çalıştırarak test ettim:

for i in {1..31} 127 0; do echo touch \\$(bc <<< "obase=8;$i"); done

2

REDAKTE

Wikipedia'ya göre , tek geçersiz karakter eğik çizgi /, ancak UNIX katmanında.


2
Belki :Mac OS Classic yasak olduğunu, ancak kesinlikle Mac OS X- üzerinde touch foo:barmükemmel çalışıyor.
Adam Rosenfield

1
Cevap güncellendi. Olumsuz oyunuzu kaldırabilirsiniz.

5
@Adam: :“unix katmanında” geçerlidir, ancak /“Mac katmanlarında” (örneğin, Finder, dosya ile ilgili diyalogların vb.) / Dan çevrilmiştir. ”Ve eğik çizgi“ POSIX yollarında ”ayırıcı olarak kullanılır, bu nedenle hangi katmanla çalıştığınıza bağlı olarak iki yönlü bir çeviri yapılır.
Chris Johnsen

2
Yani, güvenli olmak için eğik çizgi ( /) ya da iki nokta üst üste ( :) yok mu?
Nicolas Miari

2
@NicolasMiari Evet. Finder.app, iki nokta üst üste girmenize izin vermez ve onu içeren dosya adlarıyla düzgün çalışmaz. UNIX katmanı, eğik çizgi içeren dosyalarla çalışmanıza izin vermez (veya bunu bir iki noktaya dönüştürür). Ve sonra, ikisini de tıkayan başka uygulamalar (Microsoft Word gibi) vardır. Örneğin, bir belgeyi foo/bar.docx( altında çalışan) dosya adı altındaki TextEdit.app dosyasına kaydederseniz , Microsoft Word açamaz.
Konrad Rudolph
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.