Kategorie:Linux/Datei/Eigenschaft: Unterschied zwischen den Versionen
K Textersetzung - „Kategorie:Linux/Datei/Eigenschaft“ durch „Kategorie:Linux/Datei“ |
|||
Zeile 307: | Zeile 307: | ||
[[Kategorie:Linux/Datei | [[Kategorie:Linux/Datei]] |
Version vom 10. Februar 2024, 19:13 Uhr
Dateieigenschaften
$ cd / $ ls·-l
- 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)
Dateityp | Beschreibung | - | Normale Datei | |
---|---|---|---|---|
d | Verzeichnis | |||
c | Character (Zeichen)- Gerätedatei | |||
b | Block – Gerätedatei | |||
l | Softlink | |||
p | Pipe | |||
s | Socket |
Dateiname
- 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 |
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 Wildcards '*' und '?' können Teil eines Pfadnamens sein.
- Solche Zeichen bringen allerdings manchmal später Probleme mit sich, da zum Beispiel schlecht programmierte 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 ls -i und find . -inum […] -exec mv {} […] \;).
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 ls -a). Ähnliches gilt für Verzeichnispfade.
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
tmp
$ ls -l -1 --group-directories-first insgesamt 4,1M lrwxrwxrwx 1 root root 7 3. Jan 2020 bin -> usr/bin drwxr-xr-x 4 root root 4,0K 7. Okt 09:32 boot drwxr-xr-x 20 root root 3,9K 8. Okt 07:44 dev drwxr-xr-x 210 root root 16K 7. Okt 09:32 etc drwxr-xr-x 8 dirkwagner root 4,0K 19. Mär 2023 home 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 7 root root 4,0K 17. Sep 11:17 opt dr-xr-xr-x 456 root root 0 8. Okt 07:43 proc drwxr-xr-x 28 root root 4,0K 7. Okt 09:32 root drwxr-xr-x 42 root root 1,2K 8. Okt 08:28 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 8. Okt 07:43 sys drwxrwxrwt 24 root root 32K 8. Okt 11:16 tmp drwxr-xr-x 12 root root 4,0K 4. Sep 07:57 usr drwxr-xr-x 15 root root 4,0K 30. Sep 18:24 var -rw------- 1 root root 22M 19. Mär 2022 core lrwxrwxrwx 1 root root 31 5. Mär 2023 initrd.img -> boot/initrd.img-5.10.0-19-amd64 lrwxrwxrwx 1 root root 31 5. Mär 2023 initrd.img.old -> boot/initrd.img-5.10.0-19-amd64 lrwxrwxrwx 1 root root 28 5. Mär 2023 vmlinuz -> boot/vmlinuz-5.10.0-19-amd64 lrwxrwxrwx 1 root root 28 5. Mär 2023 vmlinuz.old -> boot/vmlinuz-5.10.0-19-amd64 -rw-r--r-- 1 root root 918 4. Mär 2022 webmin-setup.out
# ls -l -1 --group-directories-first total 157K lrwxrwxrwx 1 root root 7 Jul 9 2019 bin -> usr/bin drwxr-xr-x 4 root root 1.0K Jul 24 23:12 boot drwxr-xr-x 16 root root 3.6K Jul 24 23:37 dev drwxr-xr-x 156 root root 12K Sep 16 09:09 etc drwxr-xr-x 6 root root 4.0K Jul 12 2022 home drwxr-xr-x 3 root root 4.0K Feb 2 2021 html lrwxrwxrwx 1 root root 7 Jul 9 2019 lib -> usr/lib lrwxrwxrwx 1 root root 9 Jul 9 2019 lib32 -> usr/lib32 lrwxrwxrwx 1 root root 9 Jul 9 2019 lib64 -> usr/lib64 lrwxrwxrwx 1 root root 10 Jul 9 2019 libx32 -> usr/libx32 drwx------ 2 root root 16K Jul 9 2019 lost+found drwxr-xr-x 4 root root 4.0K Jan 28 2020 media drwxr-xr-x 2 root root 4.0K Jul 9 2019 mnt drwxr-xr-x 7 root root 4.0K Jul 15 13:03 opt dr-xr-xr-x 389 root root 0 Jul 24 23:37 proc drwx------ 21 root root 4.0K Oct 8 11:19 root drwxr-xr-x 37 root root 1.1K Oct 8 11:19 run lrwxrwxrwx 1 root root 8 Jul 9 2019 sbin -> usr/sbin drwxr-xr-x 2 root root 4.0K Jul 9 2019 srv dr-xr-xr-x 13 root root 0 Jul 24 23:37 sys drwxrwxrwt 21 root root 32K Oct 8 11:19 tmp drwxr-xr-x 14 root root 4.0K May 31 2021 usr drwxr-xr-x 15 root root 4.0K Mar 27 2022 var -rw------- 1 root root 305 Dec 28 2019 .directory lrwxrwxrwx 1 root root 30 Jul 24 09:04 initrd.img -> boot/initrd.img-6.1.0-10-amd64 lrwxrwxrwx 1 root root 29 Jul 24 09:04 initrd.img.old -> boot/initrd.img-6.1.0-9-amd64 -rw-r----- 1 root root 542 Nov 23 2019 installimage.conf -rw-r----- 1 root root 11K Nov 23 2019 installimage.debug -rw------- 1 root root 13K Jul 21 2022 quota.group -rw------- 1 root root 14K Jul 21 2022 quota.user lrwxrwxrwx 1 root root 27 Jul 24 09:04 vmlinuz -> boot/vmlinuz-6.1.0-10-amd64 lrwxrwxrwx 1 root root 26 Jul 24 09:04 vmlinuz.old -> boot/vmlinuz-6.1.0-9-amd64 -rw-r--r-- 1 root root 918 Mar 4 2022 webmin-setup.out
Unterkategorien
Diese Kategorie enthält die folgenden 3 Unterkategorien (3 insgesamt):
L
- Linux/Datei/Name (11 S)
- Linux/Datei/Zeit (2 S)
Seiten in der Kategorie „Linux/Datei/Eigenschaft“
Folgende 3 Seiten sind in dieser Kategorie, von 3 insgesamt.