Linux/Datei/Typ: Unterschied zwischen den Versionen

Aus Foxwiki
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Linux: Datei-Typ'''
'''Datei-Typ''' - Funktion einer [[Linux/Datei|Datei]] im Dateisystem


== Beschreibung ==
== Beschreibung ==
'''ls·-l'''
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 m nt/
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
{| class="wikitable options"
| Dateiname || jede Zeile ist der Eintrag für eine Datei
|-
| Datum/Zeit || 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)
|}
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
Zeile 56: Zeile 24:
| | '''s'''
| | '''s'''
| | Socket
| | Socket
|-
|-
|}
|}


=== Dateiname ===
== Anwendung ==
* 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].
=== Datei-Typ anzeigen ===
* Meist wird eine Datei zusätzlich durch einen Verzeichnisnamen charakterisiert, sodass ein vollständiger [http://de.wikipedia.org/wiki/Pfadname Pfadname] entsteht.
'''Dateityp''' (erstes Zeichen)
* Erst diese Kombination zu einem vollständigen Pfadnamen ist in der Regel eindeutig.
<syntaxhighlight lang="bash" highlight="1" line>
* Ein Dateiname kann – abhängig vom jeweiligen [http://de.wikipedia.org/wiki/Betriebssystem Betriebssystem] – aus mehreren Teilen bestehen.
ls -l /
* 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.
lrwxrwxrwx  1 root root    7  3. Jan 2020  bin -> usr/bin
* 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]).
drwxr-xr-x  4 root root 4,0K 25. Okt 12:49 boot
* Auch auf diesen Systemen werden aber oft Dateien mit solchen Dateiendungen versehen, da es den Datenaustausch vereinfacht.
-rw-------   1 root root  22M 19. Mär 2022  core
* 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.
drwxr-xr-x  22 root root 4,2K 25. Okt 07:49 dev
* 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.
drwxr-xr-x 214 root root  16K 25. Okt 19:07 etc
* Eine indirekte Begrenzung kann zudem durch eine maximale Länge von Pfadnamen im Betriebssystem entstehen.
drwxr-xr-x  7 root root 4,0K 11. Okt 11:08 home
* 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).
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
==== Groß-/Kleinschreibung ====
lrwxrwxrwx  1 root root    7  3. Jan 2020  lib -> usr/lib
* Im Unterschied zu Windows wird bei Linux zwischen Groß- und Kleinschreibung unterschieden.
lrwxrwxrwx  1 root root    9  3. Jan 2020  lib64 -> usr/lib64
* Daher ist die Datei test nicht identisch mit der Datei Test.
drwx------   2 root root  16K  3. Jan 2020 lost+found
* Was am Anfang bei Umsteigern womöglich zur Verwirrung beiträgt, erweist sich nach einer Einarbeitungszeit häufig als eine praktische Eigenschaft.
drwxr-xr-x  8 root root 4,0K 24. Aug 2022  media
* Der folgende Einzeiler wandelt alle Dateinamen im aktuellen Verzeichnis in Kleinbuchstaben um:
drwxr-xr-x  2 root root 4,0K 16. Nov 2019  mnt
'''for i in * ; do mv -i $i $(echo $i | tr [A-ZÄÖÜ] [a-zäöü]) ; done'''
drwxr-xr-x  11 root root 4,0K  6. Okt 17:27 opt
* Mit dem ß hat der Einzeiler noch Probleme. (Warum? Es gibt kein großes ß.)
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
==== Länge ====
drwxr-xr-x  45 root root 1,3K 26. Okt 02:20 run
Ein Dateiname darf 255 Zeichen lang sein
lrwxrwxrwx  1 root root    8 3. Jan 2020  sbin -> usr/sbin
* Damit sollte es jedem gelingen, seine Dokumente aussagekräftig zu benennen.
drwxr-xr-x  2 root root 4,0K 30. Mär 2021  snap
* Wie die Erfahrung zeigt, sind Dateinamen in der Praxis selten auch nur annähernd so lang.
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
==== Dateiendungen ====
drwxrwxrwt  25 root root  68K 26. Okt 02:20 tmp
Eine Datei muss unter Linux keine bestimmte Endung haben, wie dies bei Windows der Fall ist (beispiel.exe oder beispiel.txt).
drwxr-xr-x  12 root root 4,0K  4. Sep 2023  usr
* Auch dies verwirrt am Anfang den Umsteiger, doch gewöhnt man sich auch daran.
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
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.
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
Eine Datei kann mehrere Namen haben und sich in mehreren Verzeichnissen befinden („hard links“ oder „bind mounts“).
</syntaxhighlight>
* 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.&nbsp;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 ===
/home/user/Dokumente/brief.txt
  /usr/bin/texteditor
 
Der Dateiname '.' (Punkt) bezeichnet das aktuelle Arbeitsverzeichnis.
* Der Name '..' verweist auf das übergeordnete Verzeichnis.
 
Auch das Leerzeichen, der Zeilentrenner oder die sogenannten [http://de.wikipedia.org/wiki/Wildcard_%28Informatik%29 Wildcards] '*' und '?' können Teil eines Pfadnamens sein.
* 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.
 
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).
 
Die nicht darstellbaren Zeichen werden dann oft als Fragezeichen oder kleine Kästchen angezeigt, was den Zugriff auf die Daten sehr schwierig macht.
 
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>).
 
Ein Unix-System verwendet keine speziellen Erweiterungen, wie .EXE oder .CMD.
* 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.
 
Beispielsweise wird die Endung ''.c'' für C-Quellprogramme verwendet.
* Ausführbare Dateien, also Programme und Skripte, erhalten keine Endung.
* Dateitypen können ansonsten mit dem einfachen Programm "file", unabhängig von einer eventuell vorhandenen Erweiterung ermittelt werden.
 
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.
 
=== Dateisysteme ===
{| class="wikitable sortable"
|-
! | Dateisystem
! | typische Anwendung
! | max. Anzahl Zeichen in einem Dateinamen
! | Zeichensatz
|-
| | 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


== Normale Dateien ==
== Normale Dateien ==
Zeile 271: Zeile 77:
* [[stat]] - Inode anzeigen
* [[stat]] - Inode anzeigen
* [[touch]] - Zeitstempel ändern
* [[touch]] - Zeitstempel ändern
* [[Linux/Datei/Zeitstempel]]
* [[Linux/Datei/Zeit]]
* [[Linux/Datei/Eigenschaft|Dateieigenschaften]]
* [[Linux/Datei/Eigenschaft|Dateieigenschaften]]



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