Dateien und Ordner auf der Kommandozeile verwalten

© Dafouti, Photocase.com

Kleines Einmaleins

Die Dateiverwaltung auf der Kommandozeile stellt das kleine Einmaleins des Linux-Anwenders dar. Wer es beherrscht, agiert schnell und effizient mit Dateien und Verzeichnissen.

README

Der effektive Umgang mit den Dateiverwaltungsbefehlen auf der Kommandozeile erfordert etwas Übung. Als Lohn der Mühe winkt eine Effizienz im Umgang mit Dateien und Verzeichnissen, die sich in der grafischen Oberfläche so nicht erzielen lässt.

Linux behandelt alles als Datei. Daher zählt der Umgang mit den Kommandozeilenbefehlen zur Dateiverwaltung zu den wichtigsten Kenntnissen, die man sich als Linux-Einsteiger aneignen muss. Erfreulicherweise tragen die meisten Befehle mnemonische Namen, die sich aus der englischen Bezeichnung für ihre Funktion ableiten. So gibt ls ("list") den Inhalt eines Verzeichnisses an, mv ("move") verschiebt Dateien und Ordner von einem Ort zum anderen.

Grundsätzlich gliedern sich die Befehle zur Dateiverwaltung auf der Shell in drei Kategorien: Verzeichnis- und Dateiverwaltung, Navigation und Bearbeitung sowie Kompression. Eins haben die Befehle aus allen drei Bereichen gemeinsam: Sie sind wesentlich leistungsfähiger als ihre Pendants auf der grafischen Oberfläche und verursachen bei Bedienungsfehlern potenziell einen höheren Schaden. Beides liegt nicht zuletzt daran, dass sie sich mithilfe von Wildcards und regulären Ausdrücken gleichzeitig auf sehr viele Dateien anwenden lassen (dazu später noch mehr).

Umbenennen und verschieben

Das grundlegendste Kommando zum Umgang mit Dateien und Ordnern ist wohl cp ("copy") mit der simplen Syntax cp Optionen Quelle Ziel. Sofern Sie nicht explizit etwas anderes angeben, überschreibt cp dabei gleichnamige Dateien im Zielverzeichnis. Wünschen Sie das nicht, gibt es zwei Möglichkeiten, das zu umgehen. Zum einen können Sie cp mit der Option -b ("backup") anweisen, vor dem Überschreiben Backups der fraglichen Dateien anzulegen. Zum andern sorgt der Schalter -u ("update") dafür, dass cp nur solche Dateien überschreibt, die älter sind als das zu kopierende File.

Mit der Option -p ("preserve") sorgen Sie dafür, dass beim Kopieren der Dateimodus, der Besitzer und der Zeitstempel der Datei erhalten bleiben. Das kann zum Beispiel dann ratsam sein, wenn Sie als Root die Dateien anderer Benutzer kopieren, etwa für ein Backup. Um gezielt einzelne Dateiattribute beim Kopieren zu beeinflussen, kennt cp die beiden ausgeschriebenen Optionen --preserve=Parameter und --no-preserve=Parameter, denen Sie die Parameter mode, ownership, timestamps, context, links, xattr oder ganz einfach all mitgeben (Abbildung 1).

Abbildung 1: Der Befehl cp erlaubt Ihnen, sowohl vorsichtig als auch flexibel zu agieren. Hier sorgen die Optionen -u und --preserve dafür, dass keine neuere Datei überschrieben wird und der Besitzer der Datei sich nicht ändert.

Manchmal möchten Sie eine Datei an mehreren Stellen im Dateisystem bereitstellen, möglichst aber, ohne dabei Speicherplatz zu verschwenden. Genau das erreichen Sie, in dem Sie mithilfe des Kommandos ln -s an der gewünschten Stelle einen symbolischen Link auf das fragliche File anlegen. Ein solcher "Zeiger" spart je nach Größe der Zieldatei unter Umständen beträchtlichen Speicherplatz ein (Abbildung 2). Möchten Sie später etwa bei einem Backup statt des Symlinks die Originaldatei mitkopieren, geben sie cp dazu die Option -L mit.

Abbildung 2: 1,4 MByte gespart: Symbolische Links bieten eine einfache Möglichkeit, um Dateien platzsparend an mehreren Stellen im Dateisystem bereitzustellen.

Der Befehl mv dient dazu, eine Datei in ein anderes Verzeichnis zu verschieben, anstatt sie zu kopieren. Er folgt derselben Syntax wie cp und akzeptiert auch viele derselben Optionen. Liegen Quelle und Ziel im selben Verzeichnis, entspricht das "Verschieben" einem Umbenennen:

$ mv image.png bild.png

Als Ziel für das Kopieren und Verschieben von Dateien legen Sie bei Bedarf neue Verzeichnisse mithilfe des Befehls mkdir ("make directory") an. Als Argument geben Sie den anzulegenden Pfad an. Dabei müssen jedoch alle übergeordneten Verzeichnisse des angegebenen Ordners bereits existieren. Sind Sie sich dessen nicht ganz sicher, ergänzen Sie den Befehl um die Option -p ("parent"). Er legt gegebenenfalls noch fehlende Verzeichnisse gleich mit an:

$ mkdir ./rpg/2015/01/txt/

Zum Löschen von Dateien und Verzeichnissen dienen die beiden Befehle rm ("remove") und rmdir ("remove directory"). Bevor Sie einen der beiden ausführen, sollten Sie sich noch einmal kurz ins Gedächtnis rufen, dass es auf der Kommandozeile anders als in der grafischen Oberfläche keinen Mülleimer gibt, aus dem sich Gelöschtes wieder aufklauben lässt: Was Sie am Prompt entsorgen, das wandert direkt ins Nirwana.

Geben Sie nicht explizit etwas anderes vor, dann löscht rm ausschließlich Dateien. Soll es auch Verzeichnisse entfernen, müssen Sie ihm dazu den Schalter -r ("recursive") mitgeben. Dann aber ist Vorsicht angebracht, denn ein rm -r an der falschen Stelle beseitigt nur allzu schnell auch eigentlich noch gebrauchte (System-)Dateien. Die vorsichtigeren Naturen unter den Administratoren spendieren dem Kommando deshalb noch die Zusatzoption --preserve-root, wenn Löscharbeiten irgendwo in der Nähe des Wurzelverzeichnisses anstehen. Weitaus ungefährlicher gestaltet sich da der Umgang mit rmdir, das ausschließlich leere Verzeichnisse entfernt, solange Sie ihm nicht ausdrücklich etwas anderes befehlen.

Einen gänzlich anderen Ansatz des Kopierens verfolgt das Tool dd ("data dump"): Statt Dateien oder Verzeichnisse kopiert es Bytes oder Byte-Blöcke. aus diesem Grund verwendet es auch eine wesentlich komplexere Syntax als die bisher vorgestellten Werkzeuge. Es kommt hauptsächlich für administrative Zwecke zum Einsatz, etwa um aus einem optischen Datenträger ein ISO-Image zu erstellen, Partitionen zu kopieren oder ihren Inhalt durch Überschreiben mit zufälligen Daten zu löschen oder einen Master Boot Record zu kopieren [1]. Bei unbedachter Anwendung kann sich dd noch zerstörerischer auswirken als selbst rm .

Navigation

Die Navigation im Verzeichnisbaum mit cd ("change directory") kennen Sie natürlich schon. Zwar kennt cd keine Optionen – Sie übergeben ihm einfach das Zielverzeichnis, das Sie anspringen möchten –, wohl aber diese Option: Mit cd .. wechseln Sie ins übergeordnete Verzeichnis, cd - bringt Sie ins vorige Verzeichnis und cd ~ in Ihr Home-Verzeichnis. Kombinieren Sie das mit der History-Funktion der Shell, bietet das Terminal schon beinahe so viel Komfort wie ein Webbrowser mit seinen Vorwärts- und Rückwarts-Buttons.

Den Inhalt eines Verzeichnisses sehen Sie sich mit ls ("list") an. Viele Distributionen setzen ls als Alias für ls --color, sodass der Befehl verschiedene Dateitypen in unterschiedlichen Farben anzeigt. Die Option --classify oder kurz -F hängt zusätzlich Zeichen wie einen Schrägstrich, ein Sternchen oder einen Klammeraffen an den Dateinamen an, um auf diese Weise Verzeichnisse, ausführbare Dateien oder Symlinks zu kennzeichnen (Abbildung 3).

Abbildung 3: Viele Distributionen liefern bereits ein Alias für ls, das verschiedene Dateitypen mit Farben kennzeichnet. Über diverse Optionen kitzeln Sie noch weitere Informationen aus ls heraus.

Für den Hausgebrauch sind Sie damit fürs Erste schon ganz gut bedient, doch früher oder später benötigen Sie unausweichlich auch erweiterte Optionen wie -a, das auch versteckte Dateien anzeigt, -l, um die Dateiattribute anzusehen, oder <-h>, das die Dateigröße in besser lesbarer Form ("human readable") ausgibt. In manchen Fällen erweist sich auch eine sortierte Ausgabe des Inhalts als übersichtlicher, die Sie mit Optionen wie -S ("size"), -t ("time") oder -X ("extension") angeben.

In umfangreichen Verzeichnissen liefert ls mehr Ausgabezeilen, als ins Terminalfenster passen. Hier hilft es weiter, die Ausgabe über ls | less durch das Programm Less zu leiten, wo Sie mit den Pfeil- und Bildlauftasten beliebig durch die Anzeige blättern, bis Sie die Ausgabe mit [Q] abbrechen. Als nützlicher Helfer für ls erweist sich file, das Ihnen den Typ einer Datei anzeigt. Mit dem Schalter -L ergänzt, zeigt es für Symlinks auch den Typ der Zieldatei an. Die Option -z identifiziert darüber hinaus den Inhalt von Archiven (dazu später mehr).

Abbildung 4: Mithilfe des Kommandos file stellen Sie den Typ einer Datei fest.

Zur Suche nach Dateien dient das Kommando find mit der Syntax find Optionen Pfad Name. Der Name darf Wildcards und reguläre Ausdrücke einschließen. Die wichtigsten Optionen – Find kennt noch viel mehr – fasst die Tabelle "Optionen für Find" zusammen.

Das Kommando touch dient normalerweise dazu, den Zeitstempel einer Datei auf den aktuellen Zeitpunkt zu setzen. Dazu genügt der Aufruf touch Datei. Existiert die fragliche Datei noch nicht, legt Touch sie freundlicherweise gleich als leeres File an – ein gern genutztes Feature. Daneben lässt sich Touch auch nutzen, um Dateien vor- oder zurückzudatieren. So setzen Sie mit der Option -t den Zeitstempel und mit -a das Datum des letzten Zugriffs auf den in der Form jjJJMMTThhmm.ss angegebenen Zeitpunkt. So setzt etwa das letzte Touch-Kommando in Abbildung 5 den Zeitstempel von touch.txt auf 09:08:07 Uhr am 10. November 2014. Die Angabe des Jahrhunderts (jj), des Jahrs (JJ) und der Sekunden (.ss) ist optional.

Abbildung 5: Zeitreise: Mittels touch lassen sich Dateien vor- oder zurückdatieren.

Optionen für Find

Option

Bedeutung

-iname

Schreibweisenunabhängige Suche

-amin Min

Minuten seit dem letzten Dateizugriff

-cmin Min

Minuten seit der letzten Dateiänderung

-atime Tage

Anzahl von Tagen, vor denen zuletzt auf die Datei zugegriffen wurde

-amin Tage

Anzahl von Tagen, vor denen die Datei zuletzt geändert wurde

-group Gruppe

Dateien einer bestimmten Benutzergruppe

-user User

Dateien eines bestimmten Benutzers

-maxdepth Anzahl

Maximale Anzahl der Verzeichnisebenen für die Suche

-mindepth Anzahl

Suche erst ab der angegebenen Anzahl von Unterverzeichnisebenen

-perm Rechte

Dateien mit einer bestimmten Rechtekonstellation

-e Typ

Dateien des angegebenen Typs (etwa ascii oder compress) von der Suche ausschließen

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

08/2019
Smarte Hacks

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Immer der Reihe nach

    Mit einer einfachen Schaltung testen Sie Bausteine, die über den SPI-Bus miteinander kommunizieren.

  • Einzigartig

    Eine MAC-Adresse ermöglicht die Kommunikation im Netzwerk. Der 24AA02E48 liefert sie für Setups, die aus grundlegenden Komponenten bestehen.

  • Steinkuchen

    Der Raspberry Pi hat viele Fans, doch nicht ohne Grund sehnen sich viele Anwender nach einem RasPi 4. Der Rock Pi 4 übertrumpft den RasPi 3 in Sachen Leistung um Längen und schlägt sich auch in der Praxis gut.

  • Kerngeschäft

    Der Einstieg in die Welt der Mikrocontroller fällt nicht ganz leicht. Mit dem Nucleo F401RE haben Sie jedoch ein Entwicklerboard samt abgestimmter Entwicklungsumgebung an der Hand.

  • Himbeer-Geräte

    Mit Maus und Tastatur im weiß-roten Raspberry-Look macht die Raspberry Pi Foundation das eigene Angebot an Peripheriegeräten für den Mini-Rechner komplett.

  • Unter Kontrolle

    PiCockpit ist eine speziell auf den RasPi zugeschnittene Online-Monitoring-Lösung. Wir werfen einen ersten Blick auf den brandneuen und in Ausbau befindlichen kostenlosen Dienst.

  • Ins rechte Licht gesetzt

    Selbst ohne eigenen Garten holen Sie sich Pflanzen mithilfe von LEDs in jeden Raum und sehen ihnen mit dem RasPi beim Wachsen zu.

  • Helligkeit nach Maß

    Wer bei wechselnden Lichtverhältnissen nicht ständig die Beleuchtung manuell nachregeln möchte, der spannt dafür einen PiXtend ein.

  • Geschrumpft

    Kleine Bildschirme gibt es zwar viele, aber der Support von Raspbian ist überraschend schlecht. Mit ein paar Tricks erzielen Sie trotzdem ein optimales Ergebnis.

  • Brüllwürfel

    Kompakt-Stereoanlagen mit CD-Spieler und Kassettendeck sind inzwischen oft ein Fall für den Recyclinghof – oder für die digitale Wiederbelebung mit einem RasPi und etwas Geschick.