Как мне написать сценарий для подсчета общего количества файлов и каталогов в моем домашнем каталоге, а затем отобразить его?

Итак, вы можете отображать вывод в другом терминале, хотя я сомневаюсь, что вы действительно этого хотите. Для этого:

  1. Найдите tty терминала, на который вы хотите направить вывод; Самый простой способ - запустить tty . Это должно напечатать что-то вроде: / dev / pts / 42 .

  2. В другом терминале выполните: команда> / dev / pts / 42 & . Если вы хотите использовать как stderr, так и stdout: command> / dev / pts / 42 2> & 1 &

Это будет работать только для одного и того же пользователя (из-за разрешений) и не перенаправляет ввод (и перенаправление ввода на самом деле не сработает, так как вы будете бороться за это с оболочкой).

Гораздо лучшее решение - перенаправить вывод в файл ( command> outfile ), тогда вы можете использовать less , tail и т. Д., Чтобы смотреть это. Или используйте screen / tmux для запуска нескольких сеансов внутри одного терминала.

3
15.02.2019, 07:39
1 ответ

Используйте find :

Когда вы говорите «нерекурсивно», имели ли вы в виду, что вам нужно только количество файлов / каталогов в / home, но не в подкаталогах? В этом случае вы можете ограничить результаты до верхнего уровня с помощью параметра maxdepth .

find /home -maxdepth 1 | wc -l

Использование for:

i=0; for home in ~/*; do (( i++ )); done; echo $i

Обратите внимание на пробелы между двойными круглыми скобками и заключенным i ++.

0
27.01.2020, 21:19

Теги

Похожие вопросы