|
|
Zeile 1: |
Zeile 1: |
| == 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)
| |
|
| |
| {| class="wikitable options sortable"
| |
| |-
| |
| ! Dateityp !! Beschreibung
| |
| | - ||'''</tt>
| |
| | | Normale Datei
| |
| |-
| |
| | | <tt>'''d'''</tt>
| |
| | | Verzeichnis
| |
| |-
| |
| | | <tt>'''c '''</tt>
| |
| | | Character (Zeichen)- Gerätedatei
| |
| |-
| |
| | | <tt>'''b'''</tt>
| |
| | | Block – Gerätedatei
| |
| |-
| |
| | | <tt>'''l'''</tt>
| |
| | | Softlink
| |
| |-
| |
| | | <tt>'''p'''</tt>
| |
| | | Pipe
| |
| |-
| |
| | | '''s'''
| |
| | | 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.
| |
| * 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
| |
|
| |
| = 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
| |
|
| |
| [[Kategorie:Linux/Datei]] | | [[Kategorie:Linux/Datei]] |