Aus Raspberry Pi Geek 01/2015

Dateien und Ordner auf der Kommandozeile verwalten (Seite 3)

$ tar --append Tarball1 Tarball2

Die Option -u frischt den Inhalt eines Archivs mit neueren Versionen der enthaltenen Dateien auf, mittels --diff vergleichen Sie zwei Tarballs.

Das vierte Kompressionskommando, cpio, ist über die Jahre etwas aus der Mode gekommen, nicht zuletzt deshalb, weil es in der Handhabung etwas Umstände macht. Um ein Archiv zu erzeugen, beschickt man es in der Regel via ls mit einem Eingabedatenstrom, den man es dann in eine Ausgabedatei schreiben lässt:

$ ls | cpio Optionen -o > Archiv.cpio

Hartgesottene Unix-Administratoren lieben Cpio, weil es ähnliche Fähigkeiten wie Tar bietet, aber noch mehr Optionen und Kompressionsformate kennt sowie vielfältige Möglichkeiten bietet, die in Archiven gelagerten Dateien einzusehen und sogar zu bearbeiten. Als normaler Anwender werden Sie aber kaum jemals in die Verlegenheit geraten, Hand an Cpio-Archive zu legen.

Globbing

Einer der Gründe für die Mächtigkeit von Shell-Befehlen liegt darin, dass sie sich auf mehrere Dateien gleichzeitig anwenden lassen. Bei vielen Kommandos können Sie eine durch Leerzeichen getrennte Liste von Dateien übergeben. Viel präziser und effizienter gelingt der Umgang mit mehreren Dateien allerdings über das sogenannte Globbing. Der vom englischen Wort für Klecks oder Klümpchen abgeleitete Begriff bezeichnet eine musterbasierte Suche (“pattern matching”) auf der Basis von Platzhalterzeichen – den sogenannten Wildcards – oder Suchmustern, die man “reguläre Ausdrücke” nennt.

Das in der Bash-Shell am häufigsten verwendete Wildcard-Zeichen ist der Asterisk (*), der für eine beliebige Anzahl beliebiger Zeichen steht. Er kommt meist zum Einsatz, um Dateien mit derselben Dateinamenserweiterung zu finden. So gibt der Befehl ls *.png alle PNG-Grafiken im aktuellen Verzeichnis aus. Das Fragezeichen dagegen steht als Platzhalter für genau ein beliebiges Zeichen. Tippen Sie beispielsweise ls bild?.png, erhalten Sie als Treffer Dateien wie bild1.png oder bild2.png, nicht aber bild10.png – Letzteres enthält ja nach bild noch zwei weitere Zeichen, nicht nur eins.

Mit Suchmustern lässt sich das Globbing wesentlich präziser gestalten. Um eine Gruppe bestimmter Zeichen anzugeben, setzen Sie diese in eckige Klammern. So trifft der Ausdruck bild[12].png auf die Dateien bild1.png und bild2.png zu, nicht aber auf bild3.png oder bild12.png. Durch ein vorangestelltes ^ negieren Sie den Ausdruck und erhalten als Treffer alle Dateien, auf die das Suchmuster nicht zutrifft (Abbildung 6).

Abbildung 6: Mithilfe von Suchmustern wenden Sie Kommandozeilenbefehle auf mehrere Dateien an.

Abbildung 6: Mithilfe von Suchmustern wenden Sie Kommandozeilenbefehle auf mehrere Dateien an.

Solche Suchmuster decken allerdings nur einen kleinen Ausschnitt der Möglichkeiten ab, die klassische reguläre Ausdrücke, sogenannte Regexe, bieten. Hier können Sie ganze Zeichenklassen und Zeichenbereiche verwenden, die Suche auf Zeilen- oder Wortanfänge beschränken, und vieles andere mehr [3]. Dabei handelt es sich zwar um eine Kunst, die etwas Übung erfordert, doch der Aufwand lohnt sich.

Generell sollten Sie aber bei der Benutzung von Globbing stets Vorsicht walten lassen. Bevor Sie Kommandos wie mv oder gar rm per Mustersuche auf zahlreiche Dateien loslassen, sollten Sie zur Sicherheit vorab anhand eines ungefährlichen Befehls wie ls überprüfen, welche Dateien das Suchmuster erfasst. Anderenfalls könnte eine unangenehme Überraschung ins Haus stehen.

Fazit

Die Kommandozeilenbefehle für die Dateiverwaltung unter Linux haben fast alle eine lange (Unix-)Vorgeschichte hinter sich, in der die meisten zahlreiche Optionen angesammelt haben. Glücklicherweise wirken einige davon bei den meisten Kommandos gleich.

So können Sie in der Regel davon ausgehen, dass -r (“recursive”) für das Einschließen von Unterverzeichnissen und deren Inhalt steht und -v (“verbose”) den Befehl dazu veranlasst, während des Ablaufs eine genaue Beschreibung der gerade vorgenommenen Tätigkeiten auszugeben. Der Schalter -f (“force”) erzwingt die Ausführung des Erwünschten, ungeachtet negativer Konsequenzen und möglicher Fehler. Die Option -i (“interactive”) sorgt dafür, dass sich das Programm jede Aktion erst einmal von Ihnen bestätigen lässt, bevor es sie ausführt.

Trotz solcher Erleichterungen erfordert ein effektiver Umgang mit den Dateiverwaltungsbefehlen auf der Kommandozeile etwas Übung. Investieren Sie aber die erforderliche Zeit zum Erlernen der Kommandos und deren Optionen, dann werden Sie schnell verstehen, warum erfahrene Anwender die Arbeit auf der Kommandozeile jener in der grafischen Oberfläche vorziehen. 

Infos

  1. Dd: Heike Jurzik, “Spiegelbildlich”, LU 06/2006, S. 102, http://www.linux-community.de/9888
  2. Archivierer im Vergleich: Martin Steigerwald, “Zip und Zop”, LU 10/2010, S. 68, http://www.linux-community.de/20298
  3. Reguläre Ausdrücke: Frank Hofmann, “Schnipseljagd”, LU 09/2011, S. 84, http://www.linux-community.de/24091
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben