Nie ma tutaj odpowiedzi w 100% czarno-białej.
Zazwyczaj Linux nie polega na nazwach plików (i rozszerzeniach plików, tj. Części nazwy pliku po normalnie ostatnim okresie), a zamiast tego określa typ pliku, sprawdzając kilka pierwszych bajtów jego zawartości i porównując go z listą znanych magicznych liczb .
Na przykład wszystkie pliki obrazów bitmapowych (zwykle z rozszerzeniem nazwy .bmp
) muszą zaczynać się literami BM
w pierwszych dwóch bajtach. Skrypty w większości języków skryptowych, takich jak Bash, Python, Perl, AWK itp. (W zasadzie wszystko, co traktuje wiersze zaczynające się #
od komentarza) mogą zawierać shebang jak #!/bin/bash
pierwszy wiersz. Ten specjalny komentarz informuje system, w której aplikacji należy otworzyć plik.
Tak więc zwykle system operacyjny opiera się na zawartości pliku, a nie jego nazwie, aby określić typ pliku, ale stwierdzenie, że rozszerzenia plików nigdy nie są potrzebne w systemie Linux, to tylko połowa prawdy.
Aplikacje mogą oczywiście zaimplementować sprawdzanie plików w dowolny sposób, co obejmuje weryfikację nazwy i rozszerzenia pliku. Przykładem jest Eye of Gnome ( eog
standardowa przeglądarka zdjęć), która określa format obrazu na podstawie rozszerzenia pliku i zgłasza błąd, jeśli nie pasuje do zawartości. To, czy jest to błąd, czy funkcja, można omówić ...
Jednak nawet niektóre części systemu operacyjnego polegają na rozszerzeniach nazw plików, np. Podczas analizowania plików źródłowych oprogramowania w plikach /etc/apt/sources.list.d/
- *.list
parsowane są tylko pliki z rozszerzeniem, wszystkie inne są ignorowane. Może nie jest używany głównie do określania typu pliku, ale raczej do włączania / wyłączania analizy niektórych plików, ale nadal jest to rozszerzenie pliku, które wpływa na sposób, w jaki system traktuje plik.
I oczywiście ludzkie zyski użytkowników najbardziej z rozszerzeniami jak sprawia, że typ pliku oczywistej i pozwala również wiele plików o tej samej nazwie bazowej i różnych rozszerzeń, takich jak site.html
, site.php
, site.js
, site.css
itd. Wadą jest to, oczywiście, że rozszerzenie pliku i rzeczywista typ pliku / treść niekoniecznie muszą być zgodne.
Dodatkowo jest potrzebny do współdziałania między platformami, ponieważ np. Windows nie będzie wiedział, co zrobić z readme
plikiem, ale tylko readme.txt
.