Jak prawidłowo się przekonałeś, rozszerzenie pliku nie musi pasować do niczego konkretnego.
W systemach uniksopodobnych typy plików są zwykle wyprowadzane z zawartości pliku (tj. „Magicznej liczby” lub innych charakterystycznych struktur w pierwszych kilku bajtach), a nie z ich nazwy. Możesz także całkowicie pominąć rozszerzenie, które często jest wykonywane dla plików wykonywalnych.
Sprawdź file
polecenie, pokazuje informacje, jakie może znaleźć na temat typu pliku na podstawie jego zawartości.
W przypadku skryptu wykonywalnego system oczekuje w pierwszym wierszu tak zwanego „shebang”, który wygląda np.
#!/usr/bin/env python3
i wskazuje, który program ma działać jako interpreter z plikiem skryptu jako argumentem. Jeśli wykonasz plik tekstowy bez takiego podziału, użyje on domyślnej powłoki, tj. Bash, aby spróbować go zinterpretować.
Tak więc w systemach Unix / Linux rozszerzenia nazw plików są w większości wskazówkami (ale nie są gwarancją) dla ludzkiego użytkownika, aby szybko rozpoznał, czego oczekiwać od określonego pliku. Jest to również konwencja, która może pomóc np. W szybszym wyszukiwaniu plików.
Zauważ jednak, że istnieją wyjątki, w których nazwa i rozszerzenie mają znaczenie (np. Niektóre systemowe pliki konfiguracyjne, które muszą być zgodne z konwencją nazewnictwa lub wiele przeglądarek i edytorów obrazów również wymaga rozszerzenia, aby wskazać typ pliku).
Możesz także spojrzeć na Czy rozszerzenia plików mają jakiś cel (dla systemu operacyjnego)?