Jak długie mogą być nazwy plików?

17

Jak długie mogą być nazwy plików i folderów w systemie Ubuntu Linux oraz jakie znaki są dozwolone w nazwie pliku i nazwie folderu w systemie Ubuntu Linux?

Gaurav Agarwal
źródło

Odpowiedzi:

21

Nazwy plików w systemie Linux miały we wcześniejszej wersji Unix 14 bajtów. Ale nowoczesny system Linux ma 255 bajtów na nazwy plików.

Ponieważ znak wymaga 1 bajtu, długość staje się 255 znaków. Również foldery są traktowane jako pliki w systemie Linux

Zobacz ten link, aby uzyskać więcej informacji

Anwar
źródło
2
Nazwy plików to utf-8, więc zmienna długość: jeden bajt dla dowolnego znaku ascii. 2 lub więcej dla dowolnej innej postaci, np. £, ★, ≠, ☺, ¡, ¿, á,… itd.
ctrl-alt-delor
1
Jeśli nazwa pliku jest w kodowaniu UTF, liczba znaków zmniejsza się wraz z większą liczbą kodowań UTF. Zobacz serverfault.com/a/542452/363611 i komentarz poniżej tej odpowiedzi
Sergiy Kolodyazhnyy
4

Nie jestem pewien, jaka może być maksymalna długość nazwy pliku (dla ext4), ale jest ona bardziej zależna od systemu plików niż od samego Linuksa. Na FAT32 wydaje mi się, że ma 255 znaków. Prawdopodobnie nigdy nie potrzebujesz tak długiej nazwy pliku.

Jeśli chodzi o dozwolone znaki, w systemie plików ext4 dozwolona jest dowolna wartość bajtu, z wyjątkiem bajtu NULL (i /ponieważ jest to separator katalogu 1 ). Należy jednak ograniczyć nazwy plików do zestawu znaków UTF-8, aby uzyskać jak najszerszy zakres kompatybilności między aplikacjami i urządzeniami.

1. Jak podano w instrukcji glibc , „dowolny ciąg znaków oprócz znaku null jest dozwolony w ciągu nazwy pliku”, ale /ciąg ciągu nazwy pliku oddziela nazwę jednego pliku lub folderu od nazwy jego rodzica.

dobey
źródło
Powiedziałbym limit do az, AZ i liczb. Dodanie
znaków niealfanumerycznych
@ aking1012 Chcę używać „.” a „@” nie jest wskazane.
Gaurav Agarwal
„.” jest oczywiście w porządku. Nie widziałem @ go wełnianego, ale wydaje mi się, że w niektórych przypadkach może się zdarzyć. Rzeczy, których parsery używają jako ograniczniki i nie uciekają właściwie, to więcej, o czym mówiłem - przykłady: spacja, /, „,” itd.
RobotHumans
1
Okres .jest szeroko stosowany w samym systemie, więc nie stanowi problemu. @Powinno być również w porządku, widzę serwerów pocztowych (np exim) z jednego katalogu na koncie, które zawierają @i nie mają problemu w ogóle.
Marios Zindilis
1
użycie @ jest w porządku. 2 uwagi: JEŚLI użyjesz czegoś specjalnego, zawsze możesz uciec przed char. Zrozum też, że czasem char jest używany jako dzielnik: na przykład ssh używa go do oddzielenia użytkownika i systemu: przykład: user@system:/dir/dir@dir/może być niepewny i niezrozumiany).
Rinzwind