Если вы хотите получить количество каталогов и файлов, используйте следующее:
tree /path/to/given/dir | awk 'END{print}'
Если вы хотите получить только количество каталогов, добавьте -d
опцию:
tree /path/to/given/dir -d | awk 'END{print}'
-дерево работает рекурсивно.
После дня борьбы, я, наконец, в конечном итоге оказался еще лучше, что мне нужно:
#!/bin/bash
# Adds RVM to needed paths to start servers with needed Ruby version
PATH=$PATH:$HOME/.rvm/bin
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
# I need this server to run in background
startLocalRedmineServer()(
cd /home/adminuser/ruby_projects/redmine/
rails server webrick -e production --port 3001
)
# I need this to be done in background also
proxyLocalRedmineServer()(
proxylocal 3001 --host=mylocalredmine
)
# This thing should open mate-terminal, run start server, so that I can see real time logs, and stay on the screen in case I need it to be restarted
startOtherLocalServer()(
mate-terminal -e "bash -c 'cd /home/adminuser/ruby_projects/project_abc/';'rails s';'exec /bin/bash'"
)
# This thing should open mate-terminal and start proxying + remain opened
proxyOther()(
mate-terminal -e "bash -c 'proxylocal 3000 --host=projectabc'; 'exec /bin/bash'"
)
startLocalRedmineServer &
proxyLocalRedmineServer &
startOtherLocalServer &
proxyOther &
wait
Это скрипты добавляются для запуска, как я написал выше в этом вопросе. После запуска системы этот скрипт добавляет новые пути, которые отсутствуют, а затем начинают 4 отдельных подпроцессах. Двое из них - это Redmine Server и его прокси - работа в фоновом режиме (мне не нужно их останавливать или менять что-либо). Две другие функции открывают отдельные клеммы, начните локальные направляющие сервер и прокси, чтобы я мог остановить его или перезапустить при необходимости.