Вам нужно прослушивать этот порт, чтобы иметь возможность подключиться к нему. Для простого тестирования вы можете использовать nc
или netcat
:
nc -l -p 9999
Теперь nc
прослушивает порт 9999
, и вы можете telnet
подключиться к этому порту с другого терминала (или машины ):
$ telnet localhost 9999
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
После подключения вы можете ввести данные в одном терминале, а после нажатия Enter текст должен появиться на другом терминале.
Когда вы ищете подстановочный знак (, например, *.c
), вам действительно следует заключать его в одинарные кавычки. Когда вы переместились на один каталог вверх, я предполагаю, что вы вошли в каталог как минимум с двумя файлами, оканчивающимися на .c
, один из которых был random.c
. В этом случае bash расширил *.c
до соответствующих файлов.
Предположим, что каталог содержит hi.c
и random.c
, тогда
find. -name *.c
Становится:
find. -name hi.c random.c
Включение *.c
в одинарные кавычки приведет к тому, что оболочка не будет раскрывать его.
Чтобы найти каждый .c
файл в ~/csim
и обработать с помощьюdos2unix
:
find ~/csim -type f -name '*.c' | xargs dos2unix -f
Добавлено еще одно пояснение к рассказу @Andy's.
Обычно команде find
требуется имя файла или шаблон в качестве аргумента (заполнителя )для опции -name
.
при попытке запустить echo *.c
в каталоге, содержащем один или несколько файлов .c
, результатом будут имена этих файлов, разделенные пробелом -, например
$echo *.c
abc.c bcd.c
Если в каталоге нет .c
файлов, результат должен быть
$echo *.c
*.c
Аналогичным образом find. -name *.c
в каталоге, содержащем более 1 .c
файла, *.c
в find
заменяется именами всех .c
файлов, присутствующих в этом каталоге (*..c раскрывается как несколько аргументов. опции-name
). Это должно быть что-то вроде этого, find. -name abc.c bcd.c
. Здесь ошибка, которую вы получаете, возникает, когда find начинает поиск bcd.c
после успешного поиска abc.c
, потому что -name
принимает только один аргумент. (если есть только 1 .c
то записывается как результат, поиск в подкаталогах -больше не происходит)
Но когда в каталоге нет .c
файлов, фактическое значение *
в *.c
сохраняется.
Итак, когда вы были в ~/csim/exercise
и пытались использовать find
для поиска всех *.c
, я думаю, что в каталоге, где была запущена команда find
, не было файлов *.c
. именно поэтому значение подстановочного знака *
в *.c
сохраняется, и поиск в подкаталогах -становится успешным. После cd..
поиск не увенчался успехом, поскольку я подозреваю, что ~/csim/
имеет более 1 *.c
файлов.
Решение намного проще, достаточно экранирования подстановочного знака. Используйте любой из этого.
find. -name '*.c'
or
find. -name \*.c
or
find. -name "*.c"