6 Dateien
kraeml edited this page 2023-09-22 15:28:28 +02:00

Dateien: Aufzucht und Pflege

Lernziele

  • Die Linux-Konventionen über Datei- und Verzeichnisnamen kennen

  • Die wichtigsten Kommandos zum Umgang mit Dateien und Verzeichnissen beherrschen

  • Mit Suchmustern in der Shell umgehen können

Vorkenntnisse

  • Arbeit mit der Shell

  • Umgang mit einem Texteditor

Datei- und Pfadnamen

Welche Besonderheiten haben Dateinamen in einem Linuxsystem?

Dateinamen in einem Linuxsystem haben einige Besonderheiten im Vergleich zu anderen Betriebssystemen. Hier sind einige der Merkmale:

  1. Groß- und Kleinschreibung: Linux-Dateisysteme sind in der Regel case-sensitive, das bedeutet, dass "datei.txt" und "Datei.txt" als zwei verschiedene Dateien betrachtet werden.

  2. Erlaubte Zeichen: In Linux-Dateinamen sind die meisten Zeichen erlaubt, außer "/" und "\0" (Nullbyte). Einige spezielle Zeichen sollten jedoch vermieden werden, da sie eine besondere Bedeutung im Dateisystem haben können. Dazu gehören Leerzeichen, Sonderzeichen und reservierte Zeichen wie "*", "?", "|", ":", "-" usw.

  3. Länge des Dateinamens: In den meisten Linux-Dateisystemen liegt die maximale Länge eines Dateinamens bei etwa 255 Zeichen (bzw. 4096). Es kann jedoch von Dateisystem zu Dateisystem variieren.

  4. Verzeichnistrennzeichen: In Linux wird "/" als Trennzeichen für Verzeichnisse verwendet. Ein vollständiger Pfad zu einer Datei würde also so aussehen: "/verzeichnis1/verzeichnis2/date iname.txt".

  5. Spezielle Bedeutung bestimmter Zeichen: Einige Zeichen haben eine spezielle Bedeutung in Linux-Dateinamen. Ein Punkt am Anfang eines Dateinamens macht die Datei versteckt (sie wird standardmäßig nicht in Verzeichnislisten angezeigt). Zwei Punkte ("..") werden verwendet, um zum übergeordneten Verzeichnis zu navigieren.

  6. Dateierweiterungen: Im Gegensatz zu Windows-Betriebssystemen haben Dateierweiterungen in Linux keine zwingende Bedeutung. Sie dienen eher deskriptiven Zwecken und können verwendet werden , um den Dateityp anzugeben. Linux verwendet jedoch das Dateisystemattribut und nicht die Dateierweiterung, um den Dateityp zu bestimmen.

Diese sind nur einige der Besonderheiten von Dateinamen in einem Linuxsystem. Es gibt noch viele weitere, aber diese sind die wichtigsten.

Welche Besonderheiten haben Verzeichnisse in einem Linuxsystem

Verzeichnisse in einem Linuxsystem haben mehrere Besonderheiten:

  1. Hierarchische Struktur: Das Dateisystem in Linux ist hierarchisch aufgebaut, wobei das Wurzelverzeichnis (/) das oberste Verzeichnis ist. Alle anderen Verzeichnisse sind Unterverzeichnisse des Wurzelverzeichnisses und können wiederum weitere Unterverzeichnisse enthalten.

  2. Mount Points: In Linux können verschiedene Laufwerke oder Partitionen in das Dateisystem eingebunden werden. Diese werden als Mount Points bezeichnet und als Verzeichnisse im Dateisystem dargestellt. Dadurch kann auf die Inhalte der Laufwerke über das entsprechende Verzeichnis zugegriffen werden.

  3. Verzeichnisstrukturkonventionen: In Linux gibt es bestimmte Konventionen für Verzeichnisnamen und deren Verwendung. Zum Beispiel werden Systemdateien und -verzeichnisse in /etc/ oder /usr/share abgelegt, während Benutzerdateien in /home/username/ zu finden sind.

  4. Symbolische Links: Linux ermöglicht die Verwendung von symbolischen Links, die auf andere Verzeichnisse oder Dateien verweisen. Diese können verwendet werden, um Verknüpfungen zu erstellen oder den Zugriff auf bestimmte Dateien oder Verzeichnisse zu erleichtern.

  5. Berechtigungen: Verzeichnisse haben eigene Berechtigungen, die steuern, wer auf sie zugreifen, Verzeichnisinhalte anzeigen, Dateien erstellen oder diese bearbeiten kann. Die Berechtigungen können für den Besitzer, die Gruppe und andere Benutzer unterschiedlich festgelegt werden.

  6. Sonderverzeichnisse: Es gibt einige spezielle Verzeichnisse in Linux, die bestimmte Funktionen haben. Dazu gehören das Wurzelverzeichnis (/), das Startverzeichnis (~ oder /home/username/), das temporäre Verzeichnis (/tmp/) und das aktuelle Verzeichnis (.), um nur einige Beispiele zu nennen.

Diese Besonderheiten machen die Verzeichnisse in einem Linuxsystem vielseitig und ermöglichen eine flexible Organisation und Verwaltung von Dateien und Ordnern.

Was sind relative und absolute Pfadangaben in Linux

In Linux beziehen sich relative und absolute Pfadangaben darauf, wie der Datei- oder Verzeichnisstandort in Bezug auf das aktuelle Arbeitsverzeichnis angegeben wird.

  • Absolute Pfadangaben beginnen immer mit einem Schrägstrich (/) und geben den vollständigen Pfad vom Root-Verzeichnis aus an. Zum Beispiel: /home/benutzer/dokumente/text.txt.
  • Relative Pfadangaben geben den Pfad relativ zum aktuellen Arbeitsverzeichnis an. Zum Beispiel: wenn sich das aktuelle Verzeichnis in /home/benutzer befindet und das Zielverzeichnis document heißt, kann der relative Pfad ./dokumente/text.txt sein.

Um absolute oder relative Pfadangaben zu verwenden, kann der Befehl "cd" (Change Directory) verwendet werden, um das aktuelle Arbeitsverzeichnis zu ändern, und der Befehl "ls" (List Directory Contents), um Dateien und Verzeichnisse in einem bestimmten Pfad anzuzeigen.

Nenne die wichtigsten Linux Kommandos für Dateinamen und Verzeichnisse

  • ls: Zeigt den Inhalt eines Verzeichnisses an
  • cd: Wechselt das aktuelle Verzeichnis
  • pwd: Zeigt das aktuelle Verzeichnis an
  • mkdir: Erstellt ein neues Verzeichnis
  • rmdir: Löscht ein leeres Verzeichnis
  • rm: Löscht eine Datei oder Verzeichnis
  • cp: Kopiert Dateien oder Verzeichnisse
  • mv: Verschiebt oder benennt Dateien oder Verzeichnisse um
  • find: Sucht nach Dateien oder Verzeichnissen
  • chmod: Ändert die Zugriffsrechte einer Datei oder Verzeichnis
  • chown: Ändert den Besitzer einer Datei oder Verzeichnis
  • chgrp: Ändert die Gruppe einer Datei oder Verzeichnis
  • ln: Erstellt einen symbolischen Link oder eine Verknüpfung
  • tar: Archiviert oder entpackt Dateien und Verzeichnisse
  • grep: Durchsucht Dateien nach einem Muster
  • cat: Zeigt den Inhalt einer Datei an
  • less: Zeigt den Inhalt einer Datei in einem paginierten Format an
  • head: Zeigt die ersten Zeilen einer Datei an
  • tail: Zeigt die letzten Zeilen einer Datei an

Kommandos in diesem Kapitel

cd      Wechselt das aktuelle Arbeitsverzeichnis der Shell bash (1)
convmv  Konvertiert Dateinamen zwischen Zeichenkodierungen convmv (1)
cp      Kopiert Dateien cp (1)
find    Sucht nach Dateien, die bestimmte Kriterien erfüllen find (1), Info: find
less    Zeigt Texte (etwa Handbuchseiten) seitenweise an less (1)
ln      Stellt (_harte_ oder _symbolische_) Links her ln (1)
locate  Sucht Dateien über ihren Namen in einer Dateinamensdatenbank locate (1)
ls      Listet Dateien oder den Inhalt von Verzeichnissen auf ls (1)
mkdir   Legt neue Verzeichnisse an mkdir (1)
more    Zeigt Textdaten seitenweise an more (1)
mv      Verschiebt Dateien in andere Verzeichnisse oder benennt sie um mv (1)
pwd     Gibt den Namen des aktuellen Arbeitsverzeichnisses aus pwd (1), bash (1)
rm      Löscht Dateien oder Verzeichnisse rm (1)
rmdir   Entfernt (leere) Verzeichnisse rmdir (1)
slocate Sucht Dateien über ihren Namen in einer Datenbank und beachtet dabei deren Zugriffsrechte slocate (1)
updatedb Erstellt die Dateinamensdatenbank für locate updatedb (1)
xargs   Konstruiert Kommandozeilen aus seiner Standardeingabe xargs (1), Info: find

Zusammenfassung

  • In Dateinamen dürfen fast alle möglichen Zeichen auftauchen. Im Interesse der Portabilität sollte man sich aber auf Buchstaben, Ziffern und einige Sonderzeichen beschränken.

  • Linux unterscheidet Groß- und Kleinschreibung in Dateinamen.

  • Absolute Pfade beginnen immer mit einem Schrägstrich und benennen alle Verzeichnisse vom Wurzelverzeichnis des Verzeichnisbaums bis zum betreffenden Verzeichnis bzw. der Datei. Relative Pfade beziehen sich auf das aktuelle Verzeichnis.

  • Mit cd können Sie das aktuelle Verzeichnis der Shell ändern, mit pwd können Sie seinen Namen anzeigen.

  • ls gibt Informationen über Dateien und Verzeichnisse aus.

  • Mit mkdir und rmdir können Sie Verzeichnisse anlegen oder entfernen.

  • Die Kommandos cp, mv und rm kopieren, verschieben und löschen Dateien und Verzeichnisse.

  • Mit ln können Sie "harte" und "symbolische" Links anlegen.

  • more und less dienen zum seitenweisen Anzeigen von Dateien auf dem Terminal.

  • find sucht nach Dateien oder Verzeichnissen, die bestimmte Kriterien erfüllen.