Pipe als Argumente

Pipe als Argumente

Ich versuche, die Ausgabe eines Befehls als Argumente zu verwenden:

Der Befehl: /home/alexandre/dropbox.py exclude add ls | grep -v photos

Ich muss eine Liste von Dateien hinzufügen, zum Beispiel:

/home/alexandre/dropbox.py exclude add a.txt b.txt c.txt

ls | grep -v photosgibt mir eine Liste aller Dateien außer dem Ordner photos.

Aber wenn ich meinen Befehl verwende, fügt der Befehl eine Ausnahme für die Datei hinzu ls(die nicht existiert, ich möchte den Befehl ausführen ls).

Weiß jemand, wie das geht?

Antwort1

Sie möchten den Befehl in einer Subshell ausführen, etwa:

/home/alexandre/dropbox.py exclude add $(ls | grep -v photos)

Antwort2

Verwenden find:

find . -path ./photos -prune -o -type f -iname '*.txt' -exec /home/alexandre/dropbox.py exclude add {} +

verwandte Informationen