Startseite>Plattformunabhängige Werkzeugsammlung Swiss File Knife
Aus Raspberry Pi Geek 02/2015

Plattformunabhängige Werkzeugsammlung Swiss File Knife (Seite 2)

Keine Regel ohne Ausnahme: Manche Kommandos benötigen keine Parameter und legen sofort mit der Arbeit los. So verrät sfk space, wie viel freier Speicherplatz auf dem aktuellen Laufwerk noch zur Verfügung steht. Bei solchen Kommandos liefert der Parameter -help eine Hilfeseite (Abbildung 2). Welche Kommandos das betrifft, erfahren Sie über den Aufruf sfk: Swiss File Knife kennzeichnet diese Kandidaten mit einem entsprechenden Hinweis, meist mit dem Kürzel [-h].

Abbildung 2: Die Online-Hilfe für das Kommando »space« fällt ungewöhnlich kurz aus. Die der anderen Kommandos liefert meist mehrere Bildschirmseiten.

Abbildung 2: Die Online-Hilfe für das Kommando »space« fällt ungewöhnlich kurz aus. Die der anderen Kommandos liefert meist mehrere Bildschirmseiten.

Die von SFK ausgegebenen Hilfeseiten fallen durchweg ziemlich lang aus. Um sie in Ruhe studieren zu können, leiten Sie sie am besten in eine Textdatei um, nach folgendem Strickmuster

$ sfk list > list_hilfe.txt

Etwas bequemer lässt sich die Referenz auf der SFK-Homepage durchsuchen [1]. Eine Referenz mit allen Kommandos verkauft StahlWorks Technologies für 3 US-Dollar als PDF [3]. Die ersten 20 Seiten lassen sich kostenlos lesen. Im Wesentlichen handelt es sich dabei jedoch um die Inhalte der Hilfe-Seiten, die SFK ausgibt – in der Regel können Sie sich also den Kauf sparen.

Einzeln verarztet

In den bisherigen Beispielen hat sfk list immer alle Dateien aus dem Verzeichnis Musik berücksichtigt. Sie können die Anzeige aber auch auf bestimmte Dateien einschränken. So zeigt der Befehl sfk list Musik .wav .mp3 nur noch die Musikdateien mit der Endung .wav oder .mp3 an. Über einen Doppelpunkt lassen sich auch Dateien ausschließen: So liefert sfk list Musik :.wav alle Dateien, die nicht die Endung .wav besitzen.

Die in der Shell gerne verwendeten Platzhalter * und ? müssen Sie bei SFK durch \* und \? ersetzen – andernfalls besteht die Gefahr, dass die Shell und nicht sfk diese sogenannten Wildcards auswertet. Anstelle von \* dürfen Sie auch % schreiben. Der Befehl sfk list Musik %.mp3 zeigt also alle Dateien an, die auf .mp3 enden (Abbildung 3). Bei Bedarf kombinieren Sie mehrere Auswahlkriterien. So listet der folgende Befehl alle .mp3-Dateien auf, deren Dateiname nicht die Zeichenfolge Bubble enthält:

$ sfk list Musik %.mp3 :%Bubble%
Abbildung 3: Der erste Befehl gibt alle MP3-Dateien aus, der zweite unterdrückt zusätzlich alle Dateien mit dem Wort »Bubble«.

Abbildung 3: Der erste Befehl gibt alle MP3-Dateien aus, der zweite unterdrückt zusätzlich alle Dateien mit dem Wort »Bubble«.

Die Auswahlkriterien stehen dabei immer am Ende des kompletten Befehls und beziehen sich auf das angegebene Verzeichnis, im Beispiel Musik. SFK kann aber auch die Dateien mehrerer Verzeichnisse gleichzeitig zeigen. Dazu müssen Sie jedoch eine leicht andere Notation verwenden und den Parameter -dir zu Hilfe bitten:

$sfk list -dir Musik Downloads

Jetzt umfasst die Liste alle Dateien aus den Unterverzeichnissen Musik und Downloads. Um die Anzeige auf bestimmte Dateien zu beschränken, geben Sie die Auswahlkriterien hinter dem Parameter -file an. Das folgende Beispiel fördert so alle MP3-Dateien aus Musik und Downloads zutage, die nicht den Text Bubble im Dateinamen tragen:

$ sfk list -dir Musik Downloads -file %.mp3 :%Bubble%

Solche Kommandos helfen nicht nur beim Durchforsten von Musiksammlungen: Programmierer können sich so beispielsweise schnell die Makefiles aus allen Unterverzeichnissen zusammenklauben.

Doppelt oder nichts

Seine Vorteile spielt SFK vor allem bei komplexeren Operationen aus. So entfernt der Befehl sfk deblank Musik/ sämtliche Leerzeichen aus den Namen der Dateien im Unterverzeichnis Musik. Beim Aufruf passiert allerdings erst einmal noch nichts: Wie in Abbildung 4 gibt SFK zunächst nur einen Ausblick darauf, welche Dateien es wie umbenennen würde. Um die Änderungen tatsächlich vorzunehmen, ergänzen Sie noch den Parameter -yes:

$ sfk deblank -yes Musik/
Abbildung 4: Einige Kommandos, wie hier »deblank«, simulieren zunächst nur die Aktion. Hier zeigt das Werkzeug an, wie es die Dateien umbenennen würde. Die neuen Namen stehen dabei rechts neben den Pfeilen.

Abbildung 4: Einige Kommandos, wie hier »deblank«, simulieren zunächst nur die Aktion. Hier zeigt das Werkzeug an, wie es die Dateien umbenennen würde. Die neuen Namen stehen dabei rechts neben den Pfeilen.

Standardmäßig entfernt das Werkzeug die Leerzeichen sowohl in Datei- als auch Verzeichnisnamen. Möchten Sie die Änderungen auf Dateien beschränken, müssen Sie zunächst mit dem Kommando select alle Files auswählen und dann diese Auswahl von der Funktion deblank verarbeiten lassen:

$ sfk select Musik/ +deblank -yes

Das Plus-Zeichen vor deblank weist SFK an, die beiden Kommandos select und deblank zu verketten. Die von select vorbereitete Dateiliste erhält dabei das hinter dem Plus angegebene Kommando – in diesem Fall deblank.

Neben Leerzeichen kann SFK auch Duplikate aufspüren und eliminieren. Dabei verlässt es sich nicht rein auf die Dateinamen, sondern vergleicht immer die Inhalte der Files. Der folgende Befehl liefert die Namen aller Dateien, die sowohl im Verzeichnis Musik als auch in Download liegen (Abbildung 5):

$ sfk dupfind -dir Musik Downloads
Abbildung 5: Hier hat SFK eine Datei aufgespürt, die sowohl im Ordner »Musik« als auch unter »Downloads« liegt.

Abbildung 5: Hier hat SFK eine Datei aufgespürt, die sowohl im Ordner »Musik« als auch unter »Downloads« liegt.

Um die doppelten Dateien auch zu löschen, hängen Sie die Funktion +delete (kurz: +del) an. SFK zeigt dabei zunächst nur an, welche Dateien es entfernen würde. Um das Löschen zu bestätigen, hängen Sie wie bei deblank noch den Parameter -yes an:

$ sfk dupfind -dir Musik Downloads +del -yes

Anders als bei list spielt bei dupfind die Reihenfolge der Verzeichnisse eine wichtige Rolle: SFK nimmt an, dass die Originaldateien in Musik liegen und wertet die Dateien aus den nachfolgend angegebenen Verzeichnissen als Duplikate.

Textmangel

Eine weitere Leib- und Magenspeise von SFK sind Textdateien. Tauschen Sie häufig Textdokumente zwischen Windows und Linux aus, dürften Sie sich beispielsweise über die Kommandos lf-to-crlf und crlf-to-lf freuen, mit denen Sie die unterschiedlichen Zeilenumbrüche konvertieren.

Programmierer wandeln mit detab die Tabulatoren in einer Textdatei in Leerzeichen um, umgekehrt funktioniert es mit entab. Des Weiteren bietet SFK auch eine recht mächtige Suchen-und-Ersetzen-Funktion. Der folgende Befehl liefert alle Zeilen aus der Protokolldatei server.log zurück, die mit Error beginnen:

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland