Pipe leitet Ausgabe von cut an ls nicht weiter. Was ist falsch??

22/10/2007 - 14:59 von Pedro Santos | Report spam
Hallo,
ich probiere gerade einen verketteten Befehl, um mir die Dateien in dem Ordner
anzuzeigen, der am meisten Speicherplatz verbraucht:

du -S /home/user/Downloads | sort -rn | head -n1 | cut -f2 | ls -lS

Aus irgendeinmem Grund gibt die letzte Pipe den Ordner nicht von "cut -f2" an "ls -lS"
weiter.

Die Ausgabe des Befehls ohne " | ls -lS" lautet korrekt /home/user/Downloads/torrent
Der komplette Befehl jedoch liefert bei mir die Verzeichnisliste des aktuellen
Arbeitsverzeichnis.

Was stimmt hier nicht??

Ich benutze:
-SuSE Linux 10.3,
-GNU bash, version 3.2.25(1)-release (i586-suse-linux-gnu)
-Kernel 2.6.22.9-0.4-default

Viele Dank im Voraus

Schöne Grüße
Pedro Santos
 

Lesen sie die antworten

#1 Lukas Graf
22/10/2007 - 15:13 | Warnen spam
Pedro Santos wrote:


du -S /home/user/Downloads | sort -rn | head -n1 | cut -f2 | ls -lS

Aus irgendeinmem Grund gibt die letzte Pipe den Ordner nicht von "cut -f2"
an "ls -lS" weiter.



ls liest nicht von STDIN, sondern erwartet das Verzeichnis als
Kommandozeilenargument. Daher:

ls -lS $(du -S /home/user/Downloads | sort -rn | head -n1 | cut -f2)

tut was du erwartest.

Gruss Lukas

Ähnliche fragen