Вы могли использовать cp
скопировать каталоги, подавая окончание шаблона шарика /
,
cp -a A/*/ C/
и можно скопировать файлы без -a
(подобный -r
) опция
cp A/* B/
хотя эта последняя команда дала бы безопасные ошибки на каталогах, не скопированный.
Не с /dev/tcp/x/y
непосредственно, но Вы могли использовать каналы для общения с процессами, которые запускаются в фоновом режиме, чтобы подключить сокеты TCP и передать данные.
Что-то как
coproc hostA {
exec {fd}<> /dev/tcp/127.0.0.1/80
cat <&$fd & cat >&$fd
}
# same for hostB...
echo -e 'HEAD / HTTP/1.0\r\n\r' >&${hostA[1]}
cat <&${hostA[0]}
Поскольку Вы заканчиваете тем, что работали два cat
команды так или иначе, Вы могли бы также обойтись без /dev/tcp
(который не всегда включается), и использование, например, socat:
coproc hostA { socat - tcp:localhost:80; }
Или, Вы могли удалить зависимость от удара при помощи именованных каналов:
mkfifo hostA.in hostA.out
socat - tcp:localhost:80 < hostA.in > hostA.out &