ASCII mi Binary mi Auto mu?


16

Sunucular arasında dosya aktarımı yapıyorum ve bazılarının başlangıçta sahip oldukları geri dönüşler ve satır sonları yerine uzun bir sürekli çizgi olarak değiştirildiğini fark etmeye başladım. Bunun başlangıçta "Otomatik" olarak ayarlanmış, ancak "İkili" ve "ASCII" yi ek seçenekler olarak ayarlayan FTP İstemcimin aktarım türü ile ilgili bir şey olduğunu varsayıyorum.

Kısacası, bir dosyayı bir sunucudan diğerine aktarma yöntemlerim arasındaki farklar nelerdir ve bu farklılıklar dosyayı yukarıda bahsettiğim şekilde değiştirebilecek mi?

Aktarma DAN , Windows İÇİN Linux.

Yanıtlar:


27

FTP'nin "İkili" aktarım modu dosyaları bayt için tam olarak kopyalar. Basit ve anlaşılır.

Metin dosyalarını farklı işletim sistemleri arasına getirirken, bu istediğiniz gibi olmayabilir - farklı işletim sistemleri satır sonlarını temsil etmek için farklı kodlar kullanır. "ASCII" modu bu amaç için mevcuttur: otomatik olarak tüm satır sonlarını kaynak sisteminin formatından hedefin formatına çevirir.

"Otomatik" hakkında emin değilim, ancak dosya uzantısının veya bir metin dosyası olup olmadığına karar vermek için benzer bir şey göründüğünü hayal ediyorum ve uygun modu tahmin etmeye çalışıyor.

İstediğiniz mod, dosyalarla tam olarak ne yaptığınıza bağlıdır ... eğer onları yedeklemek için kopyalıyorsanız, muhtemelen ikili modda kopyalamak istersiniz, böylece tam olarak aynı olurlar daha sonra tekrar Windows sunucusuna geri yüklersiniz. Her iki tarafta da metin dosyaları (belki de platformlar arası bir program için yapılandırma dosyaları?) Olarak kullanılabilir olmaları gerekiyorsa, bunları çevirmek için ASCII modunu kullanmak istersiniz.

DÜZENLEME: Anlayabildiğim kadarıyla, Windows'tan Linux'a dosya FTP'leri asla satır sonlarının kaybolmasına neden olmamalıdır ... ancak , bunları ASCII modunda kopyalar ve sonra ikili modda Windows sunucusuna geri getirirseniz , Linux stili satır sonları Windows kutusunda tanınmayabilir. (Not Defteri onları görmez; Wordpad görür; YMMV diğer yazılımlarla.)

(Bugün, böyle bir kolaylık - satır sonlarını otomatik olarak dönüştürme - FTP gibi temel bir protokolde tuhaf görünebilir. FTP icat edildiğinde, metin dosyaları göndermek normaldi ve protokolün amaçlarından biri bu mümkün olduğunca kolay.)


Her ikisinin de harika açıklaması. Artık kendimi çok daha az şaşkın hissediyorum.
Sampson

teşekkür ederim ASCII modunun noktasını asla anlamadım ve şimdi kesinlikle sadece ikili modu kullanacağım
Kiwy

3

Gerçekten farklılıklar vardır ve ikili seçeneği kullanmadığınız sürece düz metin olmayan dosya aktarımlarınızla uğraşacaklardır - genellikle her zaman tamamsa kullanın :)


Onları restore etmenin bir yolu yok mu? Ya da gelecekte tekrardan kaçınmak için şimdi Binary ile transfer yapmam gerekiyor mu?
Sampson

Sana eminim olabilir bunları çözmek ama uzun zaman alabilir, şiddetle bunları yeniden iletmek için cazip olacaktır.
Chopper3

1

Hangi işletim sistemine / sisteminden dosya aktarıyorsunuz? Linux / Unix, Windows'tan farklı satır sonları kullanır. Eğer bir linux bilgisayarda bir dosya oluşturur ve pencerelerde açarsanız, garip görünebilir. Deneyimlerime göre, not defteri yerine pencerelerde wordpad kullanırsanız, bunu düzeltmek için yardımcı programlar vardır.


Bunları bir IDE'deki pencerelerde yazıyorum ve sonra bunları linux sunucusuna taşıyorum. Daha sonraki bir tarihte, uzun sürekli çizgiyi bulmak için onları linux sunucusundan açıyorum.
Sampson

dos2unix
Koşmaya

1

Windows ve Unix, satırların sonunda farklı baytlara sahiptir (Windows 0D 0A hex, Unix sadece 0A). İkili modda dosya aktarırken, bir dosyanın baytları değişmeden bir bilgisayardan taşınır. Bu ikili biçimler (örn. ZIP dosyaları, Resimler vb.) İçin gereklidir, ancak metin dosyalarıyla sorunlara yol açabilir: Örneğin, Windows'taki notepad.exe dosyası, uzun bir satır, bir unix düzenleyicisi olarak yalnızca unix stil satır sonları olan bir metin dosyası görüntüler. Windows stilini gördüğünüzde her satırın sonunda ^ M gösterebilir.

Bu nedenle teknik olarak ikili biçimler (zip, jpg, png ve sonsuz diğerleri) için FTP'yi İKİLİ olarak ayarlamanız gerekirken, metin biçimleri (HTML, PHP, CGI, vb.) İçin ASCII'ye ayarlamanız gerekir.

Çoğu iyi FTP programı da otomatik bir ayara sahiptir, bu da iyi bilinen dosya uzantılarına bağlı olarak modu (BINARY veya ASCII) belirleyecekleri anlamına gelir; örneğin, JPG dosyasının aktarımını otomatik olarak BINARY'ye geçirir ve ASCII'de bir PHP dosyası gönderir / alır modu.

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.