Просто установите терминал по умолчанию
в profile.tmux:
$ echo 'set -g default-terminal "screen-256color"' >> ~/.byobu/profile.tmux
Если количество файлов не слишком велико, вы можете использовать подстановку, чтобы установить позиционные параметры для каждого совпадающего имени файла, а затем вывести обратно подсчет:
count=$(ssh Dbprd@101.102.130.23
'set -- /files/base/incomming/*.txt; echo "$#"')
Или, если количество файлов равно большому (, но меньшему uintmax_t
), и у вас есть GNU find (для расширения -printf
), вы можете использовать трюк, который я видел от Стефана:
count=$(ssh Dbprd@101.102.130.23
'find /files/base/incomming -maxdepth 1 -type f -name '*.txt' -printf. | wc -c')
Вышеупомянутое запускает команду find
для данного каталога, ограничивая глубину только этим каталогом, а также ограничивая совпадения простыми файлами(-type f
)и имена которых заканчиваются на .txt
; для каждого совпадения печатается один период, общее количество которых подсчитывается с помощью wc -c
и возвращается из подстановки команды в присваивание count
.
sftp
не разветвляет оболочку, поэтому вы не можете использовать там свои обычные команды. Предполагая, что вы также можете войти через ssh
, вы можете использовать
ssh Dbprd@101.102.130.23 'ls /files/base/incomming/*.txt' | wc -l
или
ssh Dbprd@101.102.130.23 'ls /files/base/incomming/*.txt | wc -l'
для выполнения задачи, описанной в вопросе.
Если (по какой-либо причине )вы хотите использовать sftp
, вам нужно использовать одну из команд, доступных в ftp
(, и надеяться, что ftpd
на другой стороне знает, как обращаться с подстановочными знаками):
echo 'ls -l /files/base/incomming/*.txt' | sftp Dbprd@101.102.130.23 | wc -l