Вы можете использовать ssh для туннелирования любого порта под SSH.
sudo ssh -L 139:localhost:139 user@server
Теперь, если вы попытаетесь подключиться к порту 139 на своем компьютере, вы будете подключаться к 139 на сервере. Примечания:
Вам нужно использовать sudo для открытия привилегированного порта (& lt; 1024) на вашем компьютере, но это не приятно. Он не будет работать, если вы уже используете порт 139 (т. Е. Вы используете samba на локальном компьютере). Вам нужно будет использовать ваш локальный компьютер по IP (мы не туннелируем nbm).Не нравится вообще, но это лучшая идея, которая у меня есть.
К сожалению, эту проблему трудно решить так, чтобы поддерживать все имена файлов и переноситься. Это безопасно (он обрабатывает скрытые файлы, пути, содержащие пробелы, тире и даже новые строки) и совместимый с POSIX:
find /path/to/directory -mindepth 1 -type f -name "*.mp4" -printf x | wc -c
Если вы не хотите, чтобы он был рекурсивным, просто добавьте -maxdepth 1. [ ! d3]
Тест:
$ cd -- "$(mktemp -d)"
$ touch -- -foo.mp4 .bar.mp4 .bat.mp4 'baz.mp4
> ban.mp4'
$ find . -mindepth 1 -type f -name "*.mp4" -exec printf x \; | wc -c
4
Сравните с принятым ответом:
$ ls -lR ./*.mp4 | wc -l
3
Или другие предложения:
$ find . -name "*.mp4" | wc -l
5
$ ls -1 *.mp4 | wc -l
ls: invalid option -- '.'
Try 'ls --help' for more information.
0
$ find . -name "*.mp4" | wc -c # Answer fixed at a later time
51
$ find . -name "*.mp4" | wc -l
5
$ find . | grep -i ".mp4$" | wc -l
5
$ ls . | grep ".mp4$" | wc -l
3
Это находит, сортирует и перечисляет все файлы по расширению в порядке:
find . -type f | sed 's/.*\.//' | sort | uniq -c
Я думаю, что это очень просто, как следующие команды:
$ find . -name "*.mp4" | wc -l
8
или
$ find . | grep -i ".mp4$" | wc -l
8
Я думаю, что вышеприведенные команды вычисляют количество имен файлов и каталогов *.mp4
, поэтому я предлагаю вам использовать параметр -type f в качестве параметра find следующим образом:
$ find . -name "*.mp4" -type f | wc -l
8
Кроме того, ls -lR можно использовать как find .
Вы можете использовать ls -1 *.mp4 | wc -l.
Здесь будут перечислены все файлы, заканчивающиеся на .mp4, печать каждого файла на новой строке (ls -1 *.mp4), вывод на выход wc, который будет подсчитайте количество новых строк, используя флаг -l.
Это должно дать вам список файлов с .mp4
ls /path/to/directory | grep ".mp4$"
Если в сочетании с wc -l вы получите счет
ls /path/to/directory | grep ".mp4$" | wc -l
, если вы хотите, чтобы поиск включал подкаталоги
ls -lR /path/to/directory | grep ".mp4$" | wc -l
Сначала перейдите в нужный каталог. Например:
cd ~/Videos
Затем:
ls -la | grep ".mp4" | wc -l
В этом списке содержится содержимое вашего каталога, включая скрытые файлы, с одним файлом на строку. Он передает результат grep, который будет показывать только элементы, содержащие расширение .mp4. Этот список затем передается в «количество слов» для подсчета строк.
В результате будет выведено количество строк, которые соответствуют, что будет соответствовать количеству файлов .mp4, которые у вас есть в этом каталоге. [ ! d3]