Die Option scheint recht neu zu sein. Version 1.6 hat sie noch nicht, in 1.8 ist sie da.
Ich finde schon, dass sie immer noch der One-Tool-one-Task-Idee entspricht, denn tree(1) erzeugt eine grafische Darstellung von Verzeichnisbaeumen. Das passiert auch wenn die Verzeichnisbaeume von woanders herkommen.
Aber ich habe dennoch meine Kritik an der Umsetzung des Usecases. Hier der Abschnitt in der Manpage:
Manpage tree(1) hat geschrieben:
INPUT OPTIONS
--fromfile Reads a directory listing from a file rather than the file-
system. Paths provided on the command line are files to read from
rather than directories to search. The dot (.) directory indicates
that tree should read paths from standard input.
Erstens: Warum wird hier `.' verwendet wenn von stdin gelesen werden soll und nicht `-', wie es Konvention ist?
Zweitens: Warum braucht es hierfuer eine eigene Option und man nutzt nicht die Kommandozeilenargumente dazu? Tree kann bereits mehrere Pfadangaben auf der Kommandozeile bekommen. Warum uebergibt man nicht einfach jede Zeile der Inputdatei als Kommandozeilenargument? Dazu kann man tree dann auch so aufrufen:
Tree duerfte dann nur nicht mit einem Fehler aussteigen, wenn es den Pfad nicht gibt. (Dafuer koennte man eine Option einfuehren.) Mit so einem Ansatz haette an der Arbeitsweise von tree gar nichts geaendert werden muessen.
Drittens: Wenn man schon ein Uebergeben der Pfade aus einer Datei einbaut, warum verhaelt sich das dann nicht identisch zum Uebergeben der Pfade als Kommandozeilenargument? (Im einen Fall fuehren nicht-existente Pfade zu Fehlern im anderen Fall nicht.)
An diesen Stellen faengt die Featuritis an, deren schlimmste Folge ist, dass die konzeptionelle Klarheit verloren geht. Es sieht auf den ersten Blick halt immer so einfach aus, so eine Funktion einzubauen; erst ueber die Zeit zeigen sich die negativen Folgen.