Linux/Datei/Name: Unterschied zwischen den Versionen
Zeile 18: | Zeile 18: | ||
== Anhang == | == Anhang == | ||
=== Siehe auch === | === Siehe auch === | ||
* [[stat]] | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | {{Special:PrefixIndex/{{BASEPAGENAME}}}} | ||
==== Dokumentation ==== | ==== Dokumentation ==== | ||
===== RFC ===== | ===== RFC ===== |
Version vom 12. September 2024, 12:15 Uhr
Linux/Dateinamen - Kurzbeschreibung topic - Kurzbeschreibung
Beschreibung
Installation
Syntax
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Anwendung
Fehlerbehebung
Konfiguration
Dateien
Anhang
Siehe auch
Dokumentation
RFC
RFC | Titel |
---|---|
0000 |
Man-Pages
Info-Pages
Links
Projekt
Weblinks
TMP
Beschreibung
Ein Dateiname identifiziert eine Datei auf einem Datenträger oder bei einer Datenübertragung
- Meist wird eine Datei zusätzlich durch einen Verzeichnisnamen charakterisiert, sodass ein vollständiger Pfadname entsteht
- Erst diese Kombination zu einem vollständigen Pfadnamen ist in der Regel eindeutig
- Ein Dateiname kann – abhängig vom jeweiligen 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 Liste von Dateinamenserweiterungen verschafft einen Überblick
- Einige Betriebssysteme machen die Behandlung der Dateien von der jeweiligen Dateinamenserweiterung abhängig, andere arbeiten ohne diese Konvention und erkennen den Dateityp anhand des Inhalts (beispielsweise anhand einer sogenannten 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 Dateisystem des Datenträgers begrenzt
- So können etwa auf einer CD-ROM bei Verwendung des 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).Unix- und Unix-ähnliche Betriebssysteme wie zum Beispiel Solaris oder 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 Schrägstrich "/" und dem Nullzeichen sind erlaubt
- Frühe Versionen hatten 1 bis 14 Zeichen lange Dateinamen
- Die 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 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
Zip.gz | Mit dem ZIP Algorithmus komprimierte Datei |
.so | Shared Object - Entspricht in der Bedeutung in etwa einer DLL Datei unter Windows |
.h | Header Datei - Teil eines C Quellcodes |
.c.cpp | C bzw.
|
.o | Object File - compilierter C (C++) Quellcode |
.html | Hypertext - Dieser Text ist in Hypertext geschrieben |
.db | Datenbankdatei im DBASE Format |
.sh | Shellscript (selten verwandtes Suffix), entspricht in etwa einer DOS .BAT Datei |
.a | siehe .so |
.gif.jpg.tiff.png.xbm.xpm | Verschiedene Bildformate |
.au.wav.mp3.mod | Verschiedene Audioformate |
.rpm.tar.tgz.deb | Verschiedene Packetformate
|
.conf | Konfigurationsdatei (selten verwendetes Suffix) |
.ps | Postscript - Eine Seitenbeschreibungssprache der Firma Adobe |
.tex | LaTeX Datei, LaTeX ist für UNIX, was Word für Windows ist |
.dvi | Device Independent - Übersetzte .tex Datei |
Dateisysteme
Dateisystem | typische Anwendung | max. Anzahl Zeichen in einem Dateinamen | Zeichensatz |
---|---|---|---|
FAT ohne VFAT (DOS) | Festplatten, Speicherkarten (Foto) | 8+3 | OEM (meist Codepage 437) |
ISO 9660 Level 2 | CD, DVD | 31 | ASCII |
Joliet | CD, DVD | 64 | Unicode |
ISO 9660:1999 | CD, DVD | 179 - 221 je nach sonstigen Attributen | ASCII/unspezifiziert |
FAT mit VFAT (Windows) | Festplatten, USB-Sticks | 255 | Unicode |
ext3 | Festplatten | 255 (1) | Unicode (2) |
HFS plus | Festplatten | 255 | Unicode (UTF-16) |
UDF | CD, DVD | 255 | Unicode |
NTFS | Festplatten | 256 (3) | Unicode (UTF-16) (4) |
ReFS | Festplatten | 32000 | Unicode |
(1) Bei Verwendung von 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
Anhang
TMP
Dateinamen kürzen
rename
siehe Dateinamen kürzen mit rename
Shellscript
- Beispiel
MP3-Dateien auf 30 Zeichen kürzen
for altname in *.mp3; do neuname=$(echo $altname | cut -c -26); mv "$altname" "$neuname.mp3"; done