Linux/Datei/Typ: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(33 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' - Kurzbeschreibung
'''Datei-Typ''' - Funktion einer [[Linux/Datei|Datei]] im Dateisystem
{{:Linux/Datei/Eigenschaft}}
 
Wenn sie sich ein Verzeichnis mit dem Kommando '''ls·-l''' ansehen, erhalten wir eine solche Liste:
 
total 1093
-rw-r--r-- 1 root root 116547 May 25 1997 System.map
drwxr-xr-x 2 root root 1024 Sep 23 1996 bin/
drwxr-xr-x 2 root root 1024 May 25 1997 boot/
drwxr-xr-x 2 root root 1024 Oct 27 1996 cdrom/
drwxr-xr-x 3 root root 20480 May 4 15:28 dev/
drwxr-xr-x 7 root root 2048 May 4 16:05 etc/
drwxr-xr-x 5 root root 1024 Dec 7 1997 home/
drwxr-xr-x 3 root root 1024 Sep 23 1996 lib/
drwxr-xr-x 5 root root 1024 Sep 23 1996 local/
drwxr-xr-x 2 root root 12288 Sep 23 1996 lost+found/
drwxr-xr-x 2 root root 1024 Sep 23 1996 mnt/
dr-xr-xr-x 5 root root 0 May 4 1999 proc/
drwx------ 5 root root 1024 Sep 21 1997 root/
drwxr-xr-x 4 root root 2048 Sep 23 1996 sbin/
drwxrwxrwx 4 root root 1024 Apr 6 09:18 tmp/
drwxr-xr-x 18 root root 1024 Apr 25 1997 usr/
drwxr-xr-x 14 root root 1024 Apr 25 1997 var/
 
; Ausgabe von rechts nach links
* '''Dateiname''', jede Zeile ist der Eintrag für eine Datei.
* '''Datum und Uhrzeit''' der letzten Modifikation der Datei
* '''Größe''' der Datei in Bytes (1 Byte entspricht einem Zeichen, also z. B. 
* einem Buchstaben
* '''Gruppe''' der Datei
* '''Besitzer''' der Datei
* '''Zugriffsrechte'''
* '''Dateityp''' (erstes Zeichen)


== Beschreibung ==
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
Zeile 55: Zeile 24:
| | '''s'''
| | '''s'''
| | Socket
| | Socket
|-
|}
=== Dateiname ===
* Ein Dateiname identifiziert eine [http://de.wikipedia.org/wiki/Datei Datei] auf einem [http://de.wikipedia.org/wiki/Datenspeicher Datenträger] oder bei einer [http://de.wikipedia.org/wiki/Datenübertragung Datenübertragung].
* Meist wird eine Datei zusätzlich durch einen Verzeichnisnamen charakterisiert, sodass ein vollständiger [http://de.wikipedia.org/wiki/Pfadname Pfadname] entsteht.
* Erst diese Kombination zu einem vollständigen Pfadnamen ist in der Regel eindeutig.
* Ein Dateiname kann – abhängig vom jeweiligen [http://de.wikipedia.org/wiki/Betriebssystem Betriebssystem] – aus mehreren Teilen bestehen.
* Die einzelnen Teile sind durch bestimmte Zeichen, die in der Regel nicht Teil des Dateinamens sein können, getrennt; die [http://de.wikipedia.org/wiki/Liste_von_Dateinamenserweiterungen Liste von Dateinamenserweiterungen] verschafft einen Überblick.
* Einige Betriebssysteme machen die Behandlung der Dateien von der jeweiligen [http://de.wikipedia.org/wiki/Dateinamenserweiterung Dateinamenserweiterung] abhängig, andere arbeiten ohne diese Konvention und erkennen den Dateityp anhand des Inhalts (beispielsweise anhand einer sogenannten [http://de.wikipedia.org/wiki/Magische_Zahl_%28Informatik%29 magischen Zahl]).
* Auch auf diesen Systemen werden aber oft Dateien mit solchen Dateiendungen versehen, da es den Datenaustausch vereinfacht.
* Die maximale Länge eines Dateinamens wird sowohl durch das Betriebssystem als auch durch das [http://de.wikipedia.org/wiki/Dateisystem Dateisystem] des Datenträgers begrenzt.
* So können etwa auf einer CD-ROM bei Verwendung des [http://de.wikipedia.org/wiki/Joliet_%28Dateisystem%29 Joliet-Dateisystems] maximal 64 Zeichen genutzt werden.
* Eine indirekte Begrenzung kann zudem durch eine maximale Länge von Pfadnamen im Betriebssystem entstehen.
* Ein Unterschied zwischen MS-Windows und Linux/Unix besteht darin, dass Windows bei Dateinamen nicht zwischen Groß- und Kleinschreibung unterscheidet, während Unix dies tut (zum Beispiel bezeichnen dort ''Haustuer.txt'' und ''hausTuer.txt'' unterschiedliche Dateien).
==== Groß-/Kleinschreibung ====
* Im Unterschied zu Windows wird bei Linux zwischen Groß- und Kleinschreibung unterschieden.
* Daher ist die Datei test nicht identisch mit der Datei Test.
* Was am Anfang bei Umsteigern womöglich zur Verwirrung beiträgt, erweist sich nach einer Einarbeitungszeit häufig als eine praktische Eigenschaft.
* Der folgende Einzeiler wandelt alle Dateinamen im aktuellen Verzeichnis in Kleinbuchstaben um:
'''for i in * ; do mv -i $i $(echo $i | tr [A-ZÄÖÜ] [a-zäöü]) ; done'''
* Mit dem ß hat der Einzeiler noch Probleme. (Warum? Es gibt kein großes ß.)
==== Länge von Dateinamen ====
Ein Dateiname darf 255 Zeichen lang sein.
* Damit sollte es jedem gelingen, seine Dokumente aussagekräftig zu benennen.
* Wie die Erfahrung zeigt, sind Dateinamen in der Praxis selten auch nur annähernd so lang.
==== Dateiendungen ====
Eine Datei muss unter Linux keine bestimmte Endung haben, wie dies bei Windows der Fall ist (beispiel.exe oder beispiel.txt).
* Auch dies verwirrt am Anfang den Umsteiger, doch gewöhnt man sich auch daran.
Die meisten Dateien haben aber eine Endung, nicht ungewöhnlich sind auch mehrere - durch Punkte getrennte - Endungen (beispiel.tar.bz2).[http://de.wikipedia.org/wiki/Unix Unix]- und Unix-ähnliche Betriebssysteme wie zum Beispiel [http://de.wikipedia.org/wiki/Solaris_%28Betriebssystem%29 Solaris] oder [http://de.wikipedia.org/wiki/Linux Linux] betrachten Dateinamen als Ganzes.
Eine Datei kann mehrere Namen haben und sich in mehreren Verzeichnissen befinden („hard links“ oder „bind mounts“).
* Alle Zeichen außer dem [http://de.wikipedia.org/wiki/Schrägstrich Schrägstrich] "/" und dem [http://de.wikipedia.org/wiki/Nullzeichen Nullzeichen] sind erlaubt.
* Frühe Versionen hatten 1 bis 14 Zeichen lange Dateinamen.
* Die [http://de.wikipedia.org/wiki/Berkeley_Software_Distribution BSD]-Varianten führten bis zu 255 Zeichen lange Namen ein.
Ein relativer Dateipfad kann aus mehreren Segmenten bestehen und beginnt mit einem Segment.
* Jedes Segment unterliegt den Regeln des Dateinamens, kann also 14 bzw. 255 Zeichen lang sein.
* Die Segmente der Dateipfade werden durch das Zeichen "/" getrennt.
Das letzte Segment kennzeichnet die eigentliche Datei.
* Die vorhergehenden Segmente sind entweder Verzeichnisnamen oder symbolische Verweise (englisch „symbolic links“) auf Verzeichnisnamen.
* Ein relativer Dateipfad geht vom aktuellen Arbeitsverzeichnis aus, das jeder [http://de.wikipedia.org/wiki/Prozess_%28Informatik%29 Prozess] individuell setzen kann.
Ein absoluter Dateipfad beginnt hingegen bereits mit "/" und ist unabhängig vom aktuellen Arbeitsverzeichnis.
* Er geht vom Wurzelverzeichnis aus. Über das Wurzelverzeichnis sind alle Dateien eines Systems erreichbar.
Beim Zugriff wird zwischen Groß- und Kleinschreibung unterschieden.
===== Wichtige Dateiendungen =====
{| class="wikitable sortable"
|-
| | <tt>'''Zip.gz'''</tt>
| | Mit dem ZIP Algorithmus komprimierte Datei
|-
| | <tt>'''.so'''</tt>
| | Shared Object - Entspricht in der Bedeutung in etwa einer DLL Datei unter Windows
|-
| | <tt>'''.h'''</tt>
| | Header Datei - Teil eines C Quellcodes
|-
| | <tt>'''.c.cpp'''</tt>
| | C bzw.&nbsp;
* C++ Quelltext
|-
| | <tt>'''.o'''</tt>
| | Object File - compilierter C (C++) Quellcode
|-
| | <tt>'''.html'''</tt>
| | Hypertext - Dieser Text ist in Hypertext geschrieben
|-
| | <tt>'''.db'''</tt>
| | Datenbankdatei im DBASE Format
|-
| | <tt>'''.sh'''</tt>
| | Shellscript (selten verwandtes Suffix), entspricht in etwa einer DOS .BAT Datei
|-
| | <tt>'''.a'''</tt>
| | siehe .so
|-
| | <tt>'''.gif.jpg.tiff.png.xbm.xpm'''</tt>
| | Verschiedene Bildformate
|-
| | <tt>'''.au.wav.mp3.mod'''</tt>
| | Verschiedene Audioformate
|-
| | <tt>'''.rpm.tar.tgz.deb'''</tt>
| | Verschiedene Packetformate.
* Packete werden verwendet, um Software zu installieren
|-
| | <tt>'''.conf'''</tt>
| | Konfigurationsdatei (selten verwendetes Suffix)
|-
| | <tt>'''.ps'''</tt>
| | Postscript - Eine Seitenbeschreibungssprache der Firma Adobe
|-
| | <tt>'''.tex'''</tt>
| | LaTeX Datei, LaTeX ist für UNIX, was Word für Windows ist
|-
| | <tt>'''.dvi'''</tt>
| | Device Independent - Übersetzte .tex Datei
|-
|-
|}
|}


=== Beispiele ===
== Anwendung ==
/home/user/Dokumente/brief.txt
=== Datei-Typ anzeigen ===
/usr/bin/texteditor
'''Dateityp''' (erstes Zeichen)
 
<syntaxhighlight lang="bash" highlight="1" line>
Der Dateiname '.' (Punkt) bezeichnet das aktuelle Arbeitsverzeichnis.
ls -l /
* Der Name '..' verweist auf das übergeordnete Verzeichnis.
lrwxrwxrwx  1 root root    7  3. Jan 2020  bin -> usr/bin
 
drwxr-xr-x  4 root root 4,0K 25. Okt 12:49 boot
Auch das Leerzeichen, der Zeilentrenner oder die sogenannten [http://de.wikipedia.org/wiki/Wildcard_%28Informatik%29 Wildcards] '*' und '?' können Teil eines Pfadnamens sein.
-rw-------  1 root root  22M 19. Mär 2022  core
* Solche Zeichen bringen allerdings manchmal später Probleme mit sich, da zum Beispiel schlecht programmierte [http://de.wikipedia.org/wiki/Skriptsprache Skripte] damit nicht umgehen können.
drwxr-xr-x  22 root root 4,2K 25. Okt 07:49 dev
 
drwxr-xr-x 214 root root  16K 25. Okt 19:07 etc
Weiterhin kann es Probleme mit Dateinamen geben, die Zeichen enthalten, die im aktuell verwendeten Zeichensatz eines Programms nicht vorkommen (zum Beispiel japanische Zeichen auf einem amerikanisch eingerichteten System).
drwxr-xr-x  7 root root 4,0K 11. Okt 11:08 home
 
lrwxrwxrwx  1 root root  28 24. Okt 10:18 initrd.img -> boot/initrd.img-6.11.4-amd64
Die nicht darstellbaren Zeichen werden dann oft als Fragezeichen oder kleine Kästchen angezeigt, was den Zugriff auf die Daten sehr schwierig macht.
lrwxrwxrwx  1 root root  28 24. Okt 10:18 initrd.img.old -> boot/initrd.img-6.11.2-amd64
 
lrwxrwxrwx  1 root root    7  3. Jan 2020  lib -> usr/lib
Diese Dateien können dann oft nur bearbeitet werden, nachdem sie auf einer niedrigen Dateisystem-Abstraktionsebene umbenannt wurden (zum Beispiel durch Angabe der sogenannten inode statt des Dateinamens mit <tt>ls -i</tt> und <tt>find . -inum […] -exec mv {} […] \;</tt>).
lrwxrwxrwx  1 root root    9  3. Jan 2020  lib64 -> usr/lib64
 
drwx------   2 root root  16K  3. Jan 2020  lost+found
Ein Unix-System verwendet keine speziellen Erweiterungen, wie .EXE oder .CMD.
drwxr-xr-x  8 root root 4,0K 24. Aug 2022  media
* Es hat sich allerdings eingebürgert, Dateien eines bestimmten Types, wie in anderen Betriebssystemen, auch mit einem Punkt und einer entsprechenden Erweiterung zu versehen, um die Übersichtlichkeit zu erhöhen.
drwxr-xr-x  2 root root 4,0K 16. Nov 2019  mnt
 
drwxr-xr-x  11 root root 4,0K  6. Okt 17:27 opt
Beispielsweise wird die Endung ''.c'' für C-Quellprogramme verwendet.
dr-xr-xr-x 508 root root    0 25. Okt 07:49 proc
* Ausführbare Dateien, also Programme und Skripte, erhalten keine Endung.
drwxr-xr-x  40 root root 4,0K 26. Okt 02:20 root
* Dateitypen können ansonsten mit dem einfachen Programm "file", unabhängig von einer eventuell vorhandenen Erweiterung ermittelt werden.
drwxr-xr-x  45 root root 1,3K 26. Okt 02:20 run
 
lrwxrwxrwx  1 root root    8  3. Jan 2020  sbin -> usr/sbin
Dateien oder Verzeichnisse, deren Namen mit einem Punkt beginnen, werden üblicherweise als „versteckte“ Dateien behandelt und nur angezeigt, wenn der Benutzer dies explizit angibt (zum Beispiel mit <tt>ls -a</tt>). Ähnliches gilt für Verzeichnispfade.
drwxr-xr-x  2 root root 4,0K 30. Mär 2021  snap
 
drwxr-xr-x  3 root root 4,0K  3. Jan 2020  srv
=== Dateisysteme ===
dr-xr-xr-x  13 root root    0 26. Okt 02:18 sys
{| class="wikitable sortable"
drwxrwxrwt  25 root root  68K 26. Okt 02:20 tmp
|-
drwxr-xr-x  12 root root 4,0K  4. Sep 2023  usr
! | Dateisystem
drwxr-xr-x  15 root root 4,0K 30. Sep 2023  var
! | typische Anwendung
lrwxrwxrwx  1 root root  25 24. Okt 10:18 vmlinuz -> boot/vmlinuz-6.11.4-amd64
! | max. Anzahl Zeichen in einem Dateinamen
lrwxrwxrwx  1 root root  25 24. Okt 10:18 vmlinuz.old -> boot/vmlinuz-6.11.2-amd64
! | Zeichensatz
-rw-r--r--   1 root root  918  4. Mär 2022  webmin-setup.out
|-
</syntaxhighlight>
| | FAT ohne VFAT ([http://de.wikipedia.org/wiki/MS-DOS DOS])
| | Festplatten, Speicherkarten (Foto)
| | [http://de.wikipedia.org/wiki/8.3 8+3]
| | OEM (meist [http://de.wikipedia.org/wiki/Codepage_437 Codepage 437])
|-
| | [http://de.wikipedia.org/wiki/ISO_9660 ISO 9660] Level 2
| | CD, DVD
| | 31
| | [http://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange ASCII]
|-
| | [http://de.wikipedia.org/wiki/Joliet_%28Dateisystem%29 Joliet]
| | CD, DVD
| | 64
| | Unicode
|-
| | [http://de.wikipedia.org/wiki/ISO_9660 ISO 9660]:1999
| | CD, DVD
| | 179 - 221 je nach sonstigen Attributen
| | ASCII/unspezifiziert
|-
| | [http://de.wikipedia.org/wiki/File_Allocation_Table FAT] mit [http://de.wikipedia.org/wiki/File_Allocation_Table#VFAT VFAT] ([http://de.wikipedia.org/wiki/Microsoft_Windows Windows])
| | Festplatten, USB-Sticks
| | 255
| | [http://de.wikipedia.org/wiki/Unicode Unicode]
|-
| | [http://de.wikipedia.org/wiki/Ext3 ext3]
| | Festplatten
| | 255 (1)
| | Unicode (2)
|-
| | [http://de.wikipedia.org/wiki/HFS_plus HFS plus]
| | Festplatten
| | 255
| | Unicode (UTF-16)
|-
| | [http://de.wikipedia.org/wiki/Universal_Disk_Format UDF]
| | CD, DVD
| | 255
| | Unicode
|-
| | [http://de.wikipedia.org/wiki/NTFS NTFS]
| | Festplatten
| | 256 (3)
| | Unicode (UTF-16) (4)
|-
| | [http://de.wikipedia.org/wiki/ReFS ReFS]
| | Festplatten
| | 32000
| | Unicode
|-
|}
(1) Bei Verwendung von [http://de.wikipedia.org/wiki/UTF-8 UTF-8]-Codierung und Benutzung von Nicht-ASCII-Zeichen stehen zwar 255 ''Byte'', aber weniger als 255 ''Zeichen'' zur Verfügung.
 
(2) Die Codierung ist nicht genormt; als Voreinstellung wird meist UTF-8 verwendet.
 
(3) Bei Verwendung langer Unicode-Pfade sind lediglich 255 Zeichen möglich
[[Kategorie:Linux/Datei]]


== Normale Dateien ==
== Normale Dateien ==
Zeile 269: Zeile 74:
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
----
----
* Dateityp anzeigen - [[file]]
* [[file]] - Dateityp anzeigen
* Inode anzeigen - [[stat]]
* [[stat]] - Inode anzeigen
* [[Linux/Datei/Zeitstempel]]
* [[touch]] - Zeitstempel ändern
* [[Linux/Datei/Zeit]]
* [[Linux/Datei/Eigenschaft|Dateieigenschaften]]
* [[Linux/Datei/Eigenschaft|Dateieigenschaften]]


==== Dokumentation ====
[[Kategorie:Linux/Datei/Typ]]
==== Links ====
===== Weblinks =====


[[Kategorie:Linux/Datei/Typ]]
</noinclude>
</noinclude>

Aktuelle Version vom 26. Oktober 2024, 01:24 Uhr

Datei-Typ - Funktion einer Datei im Dateisystem

Beschreibung

- Normale Datei
d Verzeichnis
c Character (Zeichen)- Gerätedatei
b Block – Gerätedatei
l Softlink
p Pipe
s Socket

Anwendung

Datei-Typ anzeigen

Dateityp (erstes Zeichen)

ls -l /
lrwxrwxrwx   1 root root    7  3. Jan 2020  bin -> usr/bin
drwxr-xr-x   4 root root 4,0K 25. Okt 12:49 boot
-rw-------   1 root root  22M 19. Mär 2022  core
drwxr-xr-x  22 root root 4,2K 25. Okt 07:49 dev
drwxr-xr-x 214 root root  16K 25. Okt 19:07 etc
drwxr-xr-x   7 root root 4,0K 11. Okt 11:08 home
lrwxrwxrwx   1 root root   28 24. Okt 10:18 initrd.img -> boot/initrd.img-6.11.4-amd64
lrwxrwxrwx   1 root root   28 24. Okt 10:18 initrd.img.old -> boot/initrd.img-6.11.2-amd64
lrwxrwxrwx   1 root root    7  3. Jan 2020  lib -> usr/lib
lrwxrwxrwx   1 root root    9  3. Jan 2020  lib64 -> usr/lib64
drwx------   2 root root  16K  3. Jan 2020  lost+found
drwxr-xr-x   8 root root 4,0K 24. Aug 2022  media
drwxr-xr-x   2 root root 4,0K 16. Nov 2019  mnt
drwxr-xr-x  11 root root 4,0K  6. Okt 17:27 opt
dr-xr-xr-x 508 root root    0 25. Okt 07:49 proc
drwxr-xr-x  40 root root 4,0K 26. Okt 02:20 root
drwxr-xr-x  45 root root 1,3K 26. Okt 02:20 run
lrwxrwxrwx   1 root root    8  3. Jan 2020  sbin -> usr/sbin
drwxr-xr-x   2 root root 4,0K 30. Mär 2021  snap
drwxr-xr-x   3 root root 4,0K  3. Jan 2020  srv
dr-xr-xr-x  13 root root    0 26. Okt 02:18 sys
drwxrwxrwt  25 root root  68K 26. Okt 02:20 tmp
drwxr-xr-x  12 root root 4,0K  4. Sep 2023  usr
drwxr-xr-x  15 root root 4,0K 30. Sep 2023  var
lrwxrwxrwx   1 root root   25 24. Okt 10:18 vmlinuz -> boot/vmlinuz-6.11.4-amd64
lrwxrwxrwx   1 root root   25 24. Okt 10:18 vmlinuz.old -> boot/vmlinuz-6.11.2-amd64
-rw-r--r--   1 root root  918  4. Mär 2022  webmin-setup.out

Normale Dateien

  • Normale Dateien (normal files)
  • Dateien im üblichen Sinn: Text- oder Binärdateien
  • Das System unterstützt keine Dateistruktur
  • Dateien sind Bytefolgen (Strukturierung nur durch das Programm)

Gerätedateien

Gerätedatei

Anhang

Siehe auch