Dosya adları ne kadar uzun olabilir?


17

Ubuntu Linux'ta dosya adları ve klasör adları ne kadar sürebilir ve Ubuntu Linux'ta dosya adı ve klasör adında hangi karakterlere izin verilir?

Yanıtlar:


21

Linux'taki dosya adları, önceki Unix sürümünde 14 bayt uzunluğundaydı. Ancak modern Linux sisteminde dosya adları için 255 bayt vardır.

Bir karakter 1 bayt gerektirdiğinden, uzunluk 255 karakter olur. Ayrıca klasörler Linux sisteminde dosya olarak kabul edilir

Daha fazla bilgi için bu bağlantıya bakın


2
Dosya adları utf-8'dir, bu nedenle değişken uzunluk: herhangi bir ascii karakteri için bir bayt. 2 veya daha fazla başka karakter için örneğin £, ★, ≠, ☺, ¡, ¿, á,…, vb
ctrl-alt-delor

1
Dosya adı UTF kodlamasındaysa, daha fazla sayıda UTF kodlamasında karakter sayısı azalır. Bkz serverfault.com/a/542452/363611 ve bu cevabın altındaki yorum
Sergiy Kolodyazhnyy

4

Maksimum dosya adı uzunluğunun ne olabileceğinden emin değilim (ext4 için), ancak Linux'un kendisinden daha fazla dosya sistemine bağlıdır. FAT32'de 255 karakter olduğunu düşünüyorum. Muhtemelen bu kadar uzun bir dosya adına ihtiyacınız yoktur.

İzin verilen karakterlere gelince, NULL baytı (ve /dizin ayırıcı 1 olduğu gibi ) dışında ext4 dosya sisteminde herhangi bir bayt değerine izin verilir . Bununla birlikte, uygulamalar ve aygıtlar arasında en geniş uyumluluk aralığı için dosya adlarınızı UTF-8 karakter kümesiyle sınırlamalısınız.

1. glibc kılavuzunda belirtildiği gibi , "dosya adı dizesinde boş karakter dışında herhangi bir karaktere izin verilir", ancak /dosya adı dizesindeki bir dosya, bir dosyanın veya klasörün adını üst öğesinden ayırır.


Az, AZ ve rakamlarla sınır diyeceğim. Alfa-sayısal olmayanlar eklemek url ayrıştırma hatalarını bulmak için yalvarıyor
RobotHumans

@ aking1012 '.' kullanmak istiyorum. ve '@' tavsiye edilmez.
Gaurav Agarwal

'' elbette iyi. @ Yünlü gitmedim görmedim, ama sanırım bazı köşe durumlarda olabilir. Ayrıştırıcıların sınırlayıcı olarak kullandıkları ve düzgün
kaçmadıkları

1
Süre .sistemin kendisinde yaygın olarak kullanılır, bu yüzden bir sorun değildir. @Ayrıca olmalıdır pekala, onu e-posta sunucuları (örneğin bkz eximihtiva hesap başına bir dizin ile) @ve hiçbir sorun var.
Marios Zindilis

1
@ kullanmak iyidir. 2 açıklamalar: Eğer özel bir şey kullanırsanız her zaman karakter kaçabilir. Ayrıca bazen bir karakterin bölücü olarak kullanıldığını da fark edin: örneğin ssh bunu kullanıcı ve sistemi ayırmak için kullanır: örnek this: user@system:/dir/dir@dir/havalı ve anlaşılmamış olabilir).
Rinzwind
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.