Не е "free" (като свободен), а "tree" (като дърво)

Няма да работи, ако не е инсталирано. Е, би могъл да се направи portable пакет на tree, който да си влачиш в архива, заедно със скрипта и да го викаш с пълен път до мястото, където си го разархивирал, но е излишна, а може да се окаже и относителна, занимавка. Може да добавиш към скрипта проверка дали tree е инсталиран (проверка дали командата я има или дали я има в списъка с инсталирани пакети в системата, или някаква друга проверка или комбинация от проверки за наличност), и ако не е инсталиран, скриптът да го инсталира, след което да се стига до изпълнението на командата с tree. Инсталирането би било най-добре да се прави от хранилищата с пакетния мениджър на системата. Зависи обаче за каква дистрибуция (или дистрибуции) става дума. Debian базираните използват apt, Red Hat базираните използва yum, има и други пакетни мениджъри в други дистрибуции, а има и такива дистрибуции, които нямат пакетни мениджъри. Ако ще се ползват само дистрибуции, ползващи един и същ пакетен мениджър, забиваш в скрипта командата за инсталиране със съответния мениджър в случай, че tree липса, и си готов. Ако ще се ползват дистрибуции с различни пакетни мениджъри, ще трябва да добавиш проверки за вида на пакетния мениджър в текущата система и команди за всеки от необходимите пакетни мениджъри. Ако ще се ползват и дистрибуции без пакетни мениджъри, ще се наложи в скрипта да намесиш и компилиране на tree от изходен код.
И все пак си мисля, че е по-добре да оставиш инсталирането на tree да се случва извън скрипта, като може най-много да сложиш една проверка има ли я командата tree, и ако я няма, да пише, че трябва да се инсталира преди това. Например
GeSHi (Bash):
#!/bin/bash
RESULT=$(tree -F 2>/dev/null | grep '[*|/]')
test $? = 0 && echo "$RESULT" || echo 'Резултатът от търсенето е празен или пакетът tree не е инсталиран'
Пълним изхода от tree командата в променливата $RESULT, като насочваме stderr (грешките) към небитието (/dev/null), за да не ни се бъркат в съобщенията. Отдолу командата test проверява дали статусът от изпълнението на предната команда ($?) е равен на нула (което значи, че няма грешки, т.е., командата е налична), и ако е равен на нула, принтира съдържанието на променливата $RESULT, а ако не е равен на нула - принтира съобщението за нуждата от инсталиране. При извеждане на съдържанието на $RESULT може да ползваш и printf, вместо echo, ако изпитваш проблеми със сливане на редовете от изхода в един общ ред от echo.