Linux: Mehrere Befehle in einer Zeile

Wie kann man mehrere Befehle in eine Zeile schreiben?

Das ist ganz einfach: Man trennt diese durch ein Semikolon.

Beispiel:

# Befehl1 ; Befehl2 ; Befehl3

Jetzt ein richtiges Beispiel..

Du hast z.B. Verzeichnisse (Sicherungen) zu löschen, die alle so kontinuierlich aufgebaut sind:  verz-2018-03-01  Jahr Monat Tag und dann fortlaufend.
Hier möchtest Du aber nicht alle Verzeichnisse löschen sondern nur einen Teil davon.
Bevor man nun drei Befehle hintereinander eingibt, geht es auch so:

# rm -r  verz-2018-01-*  ;  rm -r verz-2018-02-[1-2]*  ;  rm -r verz-2018-03-[0-1]*

Der erste Befehl löscht alle Tage im Verzeichniss die Monat 01 haben.
Der zweit Befehl löscht alle Tage im Monat 02 die keine 3 vorne haben, also der 30 und 31 Tag bleiben erhalten im Monat 2
Der dritte Befehl löscht alle Tage im Monat 03 die keine 2 oder 3 vorne haben, also alle Tage von 0-19 wären gelöscht

So kann man mehrere (bei mir Sicherungsdaten) löschen und ein paar “stehen” lassen

Anders dagegen die die PIPE => |
Hier werden die Befehle an den Befehl davor übergeben.

Beispiel:

#grep “suchmich” text | grep “davonsuche” | sort

Hier würde grep zuerst nach dem String “suchmich” im text suchen und das Ergebnis der Suche wiederum würde nach “davonsuche” durchsucht und das
Ganze mit sort sortiert ausgegeben. Also nicht nacheinander sondern aneinanderhängend.

 

Viel Erfolg!

 

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.